Skip to content

Commit 2a1dc00

Browse files
committed
fix gogs#91
1 parent 46af92c commit 2a1dc00

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

modules/auth/auth.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type Form interface {
2121
}
2222

2323
type RegisterForm struct {
24-
UserName string `form:"username" binding:"Required;AlphaDash;MaxSize(30)"`
24+
UserName string `form:"username" binding:"Required;AlphaDashDot;MaxSize(30)"`
2525
Email string `form:"email" binding:"Required;Email;MaxSize(50)"`
2626
Password string `form:"passwd" binding:"Required;MinSize(6);MaxSize(30)"`
2727
RetypePasswd string `form:"retypepasswd"`
@@ -123,6 +123,8 @@ func validate(errors *base.BindingErrors, data base.TmplData, form Form) {
123123
data["ErrorMsg"] = form.Name(field.Name) + " cannot be empty"
124124
case base.BindingAlphaDashError:
125125
data["ErrorMsg"] = form.Name(field.Name) + " must be valid alpha or numeric or dash(-_) characters"
126+
case base.BindingAlphaDashDotError:
127+
data["ErrorMsg"] = form.Name(field.Name) + " must be valid alpha or numeric or dash(-_) or dot characters"
126128
case base.BindingMinSizeError:
127129
data["ErrorMsg"] = form.Name(field.Name) + " must contain at least " + getMinMaxSize(field) + " characters"
128130
case base.BindingMaxSizeError:

modules/base/base.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func (this *BindingErrors) Combine(other BindingErrors) {
4545
const (
4646
BindingRequireError string = "Required"
4747
BindingAlphaDashError string = "AlphaDash"
48+
BindingAlphaDashDotError string = "AlphaDashDot"
4849
BindingMinSizeError string = "MinSize"
4950
BindingMaxSizeError string = "MaxSize"
5051
BindingEmailError string = "Email"

modules/middleware/binding.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,10 @@ func Validate(obj interface{}) martini.Handler {
180180
}
181181

182182
var (
183-
alphaDashPattern = regexp.MustCompile("[^\\d\\w-_]")
184-
emailPattern = regexp.MustCompile("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?")
185-
urlPattern = regexp.MustCompile(`(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?`)
183+
alphaDashPattern = regexp.MustCompile("[^\\d\\w-_]")
184+
alphaDashDotPattern = regexp.MustCompile("[^\\d\\w-_\\.]")
185+
emailPattern = regexp.MustCompile("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?")
186+
urlPattern = regexp.MustCompile(`(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?`)
186187
)
187188

188189
func validateStruct(errors *base.BindingErrors, obj interface{}) {
@@ -227,6 +228,11 @@ func validateStruct(errors *base.BindingErrors, obj interface{}) {
227228
errors.Fields[field.Name] = base.BindingAlphaDashError
228229
break
229230
}
231+
case rule == "AlphaDashDot":
232+
if alphaDashDotPattern.MatchString(fmt.Sprintf("%v", fieldValue)) {
233+
errors.Fields[field.Name] = base.BindingAlphaDashDotError
234+
break
235+
}
230236
case strings.HasPrefix(rule, "MinSize("):
231237
min, err := strconv.Atoi(rule[8 : len(rule)-1])
232238
if err != nil {

templates/base/navbar.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<nav class="nav">
44
<a id="nav-logo" class="nav-item pull-left{{if .PageIsHome}} active{{end}}" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="logo"></a>
55
<a class="nav-item pull-left{{if .PageIsUserDashboard}} active{{end}}" href="/">Dashboard</a>
6-
<a class="nav-item pull-left{{if .PageIsHelp}} active{{end}}" target="_blank" href="https://github.com/gogits/gogs/wiki">Help</a>{{if .IsSigned}}
6+
<a class="nav-item pull-left{{if .PageIsHelp}} active{{end}}" target="_blank" href="http://gogs.io/docs">Help</a>{{if .IsSigned}}
77
{{if .HasAccess}}<form class="nav-item pull-left{{if .PageIsNewRepo}} active{{end}}" id="nav-search-form">
88
<div class="input-group">
99
<div class="input-group-btn">

0 commit comments

Comments
 (0)