aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gogs.go2
-rw-r--r--pkg/context/context.go16
-rw-r--r--pkg/template/template.go4
-rw-r--r--routes/repo/editor.go2
-rw-r--r--templates/.VERSION2
-rw-r--r--templates/repo/issue/new_form.tmpl2
-rw-r--r--templates/repo/settings/protected_branch.tmpl4
-rw-r--r--templates/repo/wiki/new.tmpl2
8 files changed, 20 insertions, 14 deletions
diff --git a/gogs.go b/gogs.go
index a3ec36f0..565427cc 100644
--- a/gogs.go
+++ b/gogs.go
@@ -16,7 +16,7 @@ import (
"github.com/gogs/gogs/pkg/setting"
)
-const APP_VER = "0.11.67.0928"
+const APP_VER = "0.11.68.0928"
func init() {
setting.AppVer = APP_VER
diff --git a/pkg/context/context.go b/pkg/context/context.go
index 8b353f61..17a5ec96 100644
--- a/pkg/context/context.go
+++ b/pkg/context/context.go
@@ -6,7 +6,6 @@ package context
import (
"fmt"
- "html/template"
"io"
"net/http"
"path"
@@ -26,6 +25,7 @@ import (
"github.com/gogs/gogs/pkg/auth"
"github.com/gogs/gogs/pkg/form"
"github.com/gogs/gogs/pkg/setting"
+ "github.com/gogs/gogs/pkg/template"
)
// Context represents context of a request.
@@ -138,10 +138,16 @@ func (c *Context) JSONSuccess(data interface{}) {
c.JSON(http.StatusOK, data)
}
+// Redirect responses redirection wtih given location and status.
+// It escapes special characters in the location string.
+func (c *Context) Redirect(location string, status ...int) {
+ c.Context.Redirect(template.EscapePound(location), status...)
+}
+
// SubURLRedirect responses redirection wtih given location and status.
// It prepends setting.AppSubURL to the location string.
func (c *Context) SubURLRedirect(location string, status ...int) {
- c.Redirect(setting.AppSubURL + location)
+ c.Redirect(setting.AppSubURL+location, status...)
}
// RenderWithErr used for page has form validation but need to prompt error to users.
@@ -227,7 +233,7 @@ func Contexter() macaron.Handler {
},
Org: &Organization{},
}
- c.Data["Link"] = c.Link
+ c.Data["Link"] = template.EscapePound(c.Link)
c.Data["PageStartTime"] = time.Now()
// Quick responses appropriate go-get meta with status 200
@@ -296,13 +302,13 @@ func Contexter() macaron.Handler {
// If request sends files, parse them here otherwise the Query() can't be parsed and the CsrfToken will be invalid.
if c.Req.Method == "POST" && strings.Contains(c.Req.Header.Get("Content-Type"), "multipart/form-data") {
if err := c.Req.ParseMultipartForm(setting.AttachmentMaxSize << 20); err != nil && !strings.Contains(err.Error(), "EOF") { // 32MB max size
- c.Handle(500, "ParseMultipartForm", err)
+ c.ServerError("ParseMultipartForm", err)
return
}
}
c.Data["CSRFToken"] = x.GetToken()
- c.Data["CSRFTokenHTML"] = template.HTML(`<input type="hidden" name="_csrf" value="` + x.GetToken() + `">`)
+ c.Data["CSRFTokenHTML"] = template.Safe(`<input type="hidden" name="_csrf" value="` + x.GetToken() + `">`)
log.Trace("Session ID: %s", sess.ID())
log.Trace("CSRF Token: %v", c.Data["CSRFToken"])
diff --git a/pkg/template/template.go b/pkg/template/template.go
index ff9921e7..8a85980a 100644
--- a/pkg/template/template.go
+++ b/pkg/template/template.go
@@ -64,7 +64,7 @@ func NewFuncMap() []template.FuncMap {
"AppendAvatarSize": tool.AppendAvatarSize,
"Safe": Safe,
"Sanitize": bluemonday.UGCPolicy().Sanitize,
- "Str2html": Str2html,
+ "Str2html": Str2HTML,
"NewLine2br": NewLine2br,
"TimeSince": tool.TimeSince,
"RawTimeSince": tool.RawTimeSince,
@@ -127,7 +127,7 @@ func Safe(raw string) template.HTML {
return template.HTML(raw)
}
-func Str2html(raw string) template.HTML {
+func Str2HTML(raw string) template.HTML {
return template.HTML(markup.Sanitize(raw))
}
diff --git a/routes/repo/editor.go b/routes/repo/editor.go
index f33e2470..67c2be1e 100644
--- a/routes/repo/editor.go
+++ b/routes/repo/editor.go
@@ -286,7 +286,7 @@ func editFilePost(c *context.Context, f form.EditRepoFile, isNewFile bool) {
if f.IsNewBrnach() && c.Repo.PullRequest.Allowed {
c.Redirect(c.Repo.PullRequestURL(oldBranchName, f.NewBranchName))
} else {
- c.Redirect(c.Repo.RepoLink + "/src/" + branchName + "/" + template.EscapePound(f.TreePath))
+ c.Redirect(c.Repo.RepoLink + "/src/" + branchName + "/" + f.TreePath)
}
}
diff --git a/templates/.VERSION b/templates/.VERSION
index cc2f02e6..fb9a1afb 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.11.67.0928
+0.11.68.0928
diff --git a/templates/repo/issue/new_form.tmpl b/templates/repo/issue/new_form.tmpl
index d3f9f710..c2f215e2 100644
--- a/templates/repo/issue/new_form.tmpl
+++ b/templates/repo/issue/new_form.tmpl
@@ -1,4 +1,4 @@
-<form class="ui comment form grid" action="{{EscapePound .Link}}" method="post">
+<form class="ui comment form grid" action="{{.Link}}" method="post">
{{.CSRFTokenHTML}}
{{if .Flash}}
<div class="sixteen wide column">
diff --git a/templates/repo/settings/protected_branch.tmpl b/templates/repo/settings/protected_branch.tmpl
index 10495718..e9367fe0 100644
--- a/templates/repo/settings/protected_branch.tmpl
+++ b/templates/repo/settings/protected_branch.tmpl
@@ -11,7 +11,7 @@
</h4>
<div class="ui attached segment branch-protection">
<p>{{.i18n.Tr "repo.settings.branch_protection_desc" .Branch.Name | Str2html}}</p>
- <form class="ui form" action="{{EscapePound .Link}}" method="post">
+ <form class="ui form" action="{{.Link}}" method="post">
{{.CSRFTokenHTML}}
<div class="inline field">
<div class="ui checkbox">
@@ -83,4 +83,4 @@
</div>
</div>
</div>
-{{template "base/footer" .}} \ No newline at end of file
+{{template "base/footer" .}}
diff --git a/templates/repo/wiki/new.tmpl b/templates/repo/wiki/new.tmpl
index 74069758..13ba3b9f 100644
--- a/templates/repo/wiki/new.tmpl
+++ b/templates/repo/wiki/new.tmpl
@@ -11,7 +11,7 @@
</div>
{{end}}
</div>
- <form class="ui form" action="{{EscapePound .Link}}" method="post">
+ <form class="ui form" action="{{.Link}}" method="post">
{{.CSRFTokenHTML}}
<input type="hidden" name="old_title" value="{{.old_title}}">
<div class="field {{if .Err_Title}}error{{end}}">