mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 20:50:19 +08:00
Improve CheckUserSignup().
This commit is contained in:
@ -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 {
|
||||||
|
@ -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
33
util/regex.go
Normal 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)
|
||||||
|
}
|
Reference in New Issue
Block a user