Improve CheckUserSignup().

This commit is contained in:
Yang Luo
2021-05-01 17:45:01 +08:00
parent a093f3af5a
commit 904faae6eb
3 changed files with 45 additions and 2 deletions

View File

@ -79,7 +79,7 @@ func (c *ApiController) Signup() {
} }
userId := fmt.Sprintf("%s/%s", form.Organization, form.Username) userId := fmt.Sprintf("%s/%s", form.Organization, form.Username)
msg := object.CheckUserSignup(userId, form.Password) msg := object.CheckUserSignup(userId, form.Password, form.Name, form.Email, form.PhonePrefix, form.Phone, form.Affiliation)
if msg != "" { if msg != "" {
resp = Response{Status: "error", Msg: msg, Data: ""} resp = Response{Status: "error", Msg: msg, Data: ""}
} else { } else {

View File

@ -17,6 +17,8 @@ package object
import ( import (
"fmt" "fmt"
"regexp" "regexp"
"github.com/casdoor/casdoor/util"
) )
var reWhiteSpace *regexp.Regexp var reWhiteSpace *regexp.Regexp
@ -25,13 +27,21 @@ func init() {
reWhiteSpace, _ = regexp.Compile("\\s") reWhiteSpace, _ = regexp.Compile("\\s")
} }
func CheckUserSignup(userId string, password string) string { func CheckUserSignup(userId string, password string, displayName string, email string, phonePrefix string, phone string, affiliation string) string {
if len(userId) == 0 || len(password) == 0 { if len(userId) == 0 || len(password) == 0 {
return "username and password cannot be blank" return "username and password cannot be blank"
} else if reWhiteSpace.MatchString(userId) { } else if reWhiteSpace.MatchString(userId) {
return "username cannot contain white spaces" return "username cannot contain white spaces"
} else if HasUser(userId) { } else if HasUser(userId) {
return "username already exists" return "username already exists"
} else if displayName == "" {
return "displayName cannot be blank"
} else if affiliation == "" {
return "affiliation cannot be blank"
} else if !util.IsEmailValid(email) {
return "email is invalid"
} else if phonePrefix == "86" && !util.IsPhoneCnValid(phone) {
return "phone number is invalid"
} else { } else {
return "" return ""
} }

33
util/regex.go Normal file
View File

@ -0,0 +1,33 @@
// Copyright 2021 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package util
import "regexp"
var reEmail *regexp.Regexp
var rePhoneCn *regexp.Regexp
func init() {
reEmail, _ = regexp.Compile(`^[0-9a-z][_.0-9a-z-]{0,31}@([0-9a-z][0-9a-z-]{0,30}[0-9a-z]\.){1,4}[a-z]{2,4}$`)
rePhoneCn, _ = regexp.Compile("^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$")
}
func IsEmailValid(email string) bool {
return reEmail.MatchString(email)
}
func IsPhoneCnValid(phone string) bool {
return rePhoneCn.MatchString(phone)
}