aboutsummaryrefslogtreecommitdiff
path: root/modules/form
diff options
context:
space:
mode:
Diffstat (limited to 'modules/form')
-rw-r--r--modules/form/form.go20
-rw-r--r--modules/form/repo.go2
2 files changed, 21 insertions, 1 deletions
diff --git a/modules/form/form.go b/modules/form/form.go
index 1e6fec9e..2efbf4fa 100644
--- a/modules/form/form.go
+++ b/modules/form/form.go
@@ -5,7 +5,9 @@
package form
import (
+ "fmt"
"reflect"
+ "regexp"
"strings"
"github.com/Unknwon/com"
@@ -13,8 +15,24 @@ import (
"gopkg.in/macaron.v1"
)
+const ERR_ALPHA_DASH_DOT_SLASH = "AlphaDashDotSlashError"
+
+var AlphaDashDotSlashPattern = regexp.MustCompile("[^\\d\\w-_\\./]")
+
func init() {
binding.SetNameMapper(com.ToSnakeCase)
+ binding.AddRule(&binding.Rule{
+ IsMatch: func(rule string) bool {
+ return rule == "AlphaDashDotSlash"
+ },
+ IsValid: func(errs binding.Errors, name string, v interface{}) (bool, binding.Errors) {
+ if AlphaDashDotSlashPattern.MatchString(fmt.Sprintf("%v", v)) {
+ errs.Add([]string{name}, ERR_ALPHA_DASH_DOT_SLASH, "AlphaDashDotSlash")
+ return false, errs
+ }
+ return true, errs
+ },
+ })
}
type Form interface {
@@ -113,6 +131,8 @@ func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaro
data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error")
case binding.ERR_ALPHA_DASH_DOT:
data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error")
+ case ERR_ALPHA_DASH_DOT_SLASH:
+ data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_slash_error")
case binding.ERR_SIZE:
data["ErrorMsg"] = trName + l.Tr("form.size_error", getSize(field))
case binding.ERR_MIN_SIZE:
diff --git a/modules/form/repo.go b/modules/form/repo.go
index 0aadde96..0f3e83ce 100644
--- a/modules/form/repo.go
+++ b/modules/form/repo.go
@@ -323,7 +323,7 @@ type EditRepoFile struct {
CommitSummary string `binding:"MaxSize(100)`
CommitMessage string
CommitChoice string `binding:"Required;MaxSize(50)"`
- NewBranchName string `binding:"AlphaDashDot;MaxSize(100)"`
+ NewBranchName string `binding:"AlphaDashDotSlash;MaxSize(100)"`
LastCommit string
}