mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	fix #91
This commit is contained in:
		@@ -21,7 +21,7 @@ type Form interface {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type RegisterForm struct {
 | 
			
		||||
	UserName     string `form:"username" binding:"Required;AlphaDash;MaxSize(30)"`
 | 
			
		||||
	UserName     string `form:"username" binding:"Required;AlphaDashDot;MaxSize(30)"`
 | 
			
		||||
	Email        string `form:"email" binding:"Required;Email;MaxSize(50)"`
 | 
			
		||||
	Password     string `form:"passwd" binding:"Required;MinSize(6);MaxSize(30)"`
 | 
			
		||||
	RetypePasswd string `form:"retypepasswd"`
 | 
			
		||||
@@ -123,6 +123,8 @@ func validate(errors *base.BindingErrors, data base.TmplData, form Form) {
 | 
			
		||||
				data["ErrorMsg"] = form.Name(field.Name) + " cannot be empty"
 | 
			
		||||
			case base.BindingAlphaDashError:
 | 
			
		||||
				data["ErrorMsg"] = form.Name(field.Name) + " must be valid alpha or numeric or dash(-_) characters"
 | 
			
		||||
			case base.BindingAlphaDashDotError:
 | 
			
		||||
				data["ErrorMsg"] = form.Name(field.Name) + " must be valid alpha or numeric or dash(-_) or dot characters"
 | 
			
		||||
			case base.BindingMinSizeError:
 | 
			
		||||
				data["ErrorMsg"] = form.Name(field.Name) + " must contain at least " + getMinMaxSize(field) + " characters"
 | 
			
		||||
			case base.BindingMaxSizeError:
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,7 @@ func (this *BindingErrors) Combine(other BindingErrors) {
 | 
			
		||||
const (
 | 
			
		||||
	BindingRequireError         string = "Required"
 | 
			
		||||
	BindingAlphaDashError       string = "AlphaDash"
 | 
			
		||||
	BindingAlphaDashDotError    string = "AlphaDashDot"
 | 
			
		||||
	BindingMinSizeError         string = "MinSize"
 | 
			
		||||
	BindingMaxSizeError         string = "MaxSize"
 | 
			
		||||
	BindingEmailError           string = "Email"
 | 
			
		||||
 
 | 
			
		||||
@@ -181,6 +181,7 @@ func Validate(obj interface{}) martini.Handler {
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	alphaDashPattern    = regexp.MustCompile("[^\\d\\w-_]")
 | 
			
		||||
	alphaDashDotPattern = regexp.MustCompile("[^\\d\\w-_\\.]")
 | 
			
		||||
	emailPattern        = regexp.MustCompile("[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[a-zA-Z0-9](?:[\\w-]*[\\w])?")
 | 
			
		||||
	urlPattern          = regexp.MustCompile(`(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?`)
 | 
			
		||||
)
 | 
			
		||||
@@ -227,6 +228,11 @@ func validateStruct(errors *base.BindingErrors, obj interface{}) {
 | 
			
		||||
					errors.Fields[field.Name] = base.BindingAlphaDashError
 | 
			
		||||
					break
 | 
			
		||||
				}
 | 
			
		||||
			case rule == "AlphaDashDot":
 | 
			
		||||
				if alphaDashDotPattern.MatchString(fmt.Sprintf("%v", fieldValue)) {
 | 
			
		||||
					errors.Fields[field.Name] = base.BindingAlphaDashDotError
 | 
			
		||||
					break
 | 
			
		||||
				}
 | 
			
		||||
			case strings.HasPrefix(rule, "MinSize("):
 | 
			
		||||
				min, err := strconv.Atoi(rule[8 : len(rule)-1])
 | 
			
		||||
				if err != nil {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
        <nav class="nav">
 | 
			
		||||
            <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>
 | 
			
		||||
            <a class="nav-item pull-left{{if .PageIsUserDashboard}} active{{end}}" href="/">Dashboard</a>
 | 
			
		||||
            <a class="nav-item pull-left{{if .PageIsHelp}} active{{end}}" target="_blank" href="https://github.com/gogits/gogs/wiki">Help</a>{{if .IsSigned}}
 | 
			
		||||
            <a class="nav-item pull-left{{if .PageIsHelp}} active{{end}}" target="_blank" href="http://gogs.io/docs">Help</a>{{if .IsSigned}}
 | 
			
		||||
            {{if .HasAccess}}<form class="nav-item pull-left{{if .PageIsNewRepo}} active{{end}}" id="nav-search-form">
 | 
			
		||||
                <div class="input-group">
 | 
			
		||||
                    <div class="input-group-btn">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user