MM-54502 - Update regex to force first character to be alpha (#24675)
Automatic Merge
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5bfb32c504
Коммит
08ed72f060
@@ -453,7 +453,7 @@ func (u *User) PreSave() *AppError {
|
||||
}
|
||||
|
||||
if u.Username == "" {
|
||||
u.Username = NewId()
|
||||
u.Username = NewUsername()
|
||||
}
|
||||
|
||||
if u.AuthData != nil && *u.AuthData == "" {
|
||||
@@ -972,7 +972,8 @@ func HashPassword(password string) (string, error) {
|
||||
}
|
||||
|
||||
var validUsernameChars = regexp.MustCompile(`^[a-z0-9\.\-_]+$`)
|
||||
var validUsernameCharsForRemote = regexp.MustCompile(`^[a-z0-9\.\-_:]+$`)
|
||||
var validUsername = regexp.MustCompile(`^[a-z][a-z0-9\.\-_]*$`)
|
||||
var validUsernameCharsForRemote = regexp.MustCompile(`^[a-z][a-z0-9\.\-_:]*$`)
|
||||
|
||||
var restrictedUsernames = map[string]struct{}{
|
||||
"all": {},
|
||||
@@ -986,7 +987,7 @@ func IsValidUsername(s string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
if !validUsernameChars.MatchString(s) {
|
||||
if !validUsername.MatchString(s) {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -1028,7 +1029,7 @@ func CleanUsername(logger mlog.LoggerIFace, username string) string {
|
||||
s = strings.Trim(s, "-")
|
||||
|
||||
if !IsValidUsername(s) {
|
||||
s = "a" + NewId()
|
||||
s = NewUsername()
|
||||
logger.Warn("Generating new username since provided username was invalid",
|
||||
mlog.String("provided_username", username), mlog.String("new_username", s))
|
||||
}
|
||||
|
||||
@@ -252,11 +252,11 @@ func TestUserIsValid(t *testing.T) {
|
||||
appErr = user.IsValid()
|
||||
require.True(t, HasExpectedUserIsValidError(appErr, "username", user.Id, user.Username), "expected user is valid error: %s", appErr.Error())
|
||||
|
||||
user.Username = NewId() + "^hello#"
|
||||
user.Username = NewUsername() + "^hello#"
|
||||
appErr = user.IsValid()
|
||||
require.True(t, HasExpectedUserIsValidError(appErr, "username", user.Id, user.Username), "expected user is valid error: %s", appErr.Error())
|
||||
|
||||
user.Username = NewId()
|
||||
user.Username = NewUsername()
|
||||
appErr = user.IsValid()
|
||||
require.True(t, HasExpectedUserIsValidError(appErr, "email", user.Id, user.Email), "expected user is valid error: %s", appErr.Error())
|
||||
|
||||
@@ -429,9 +429,9 @@ var usernames = []usernamesTest{
|
||||
{"spin-punch", true, true},
|
||||
{"sp", true, true},
|
||||
{"s", true, true},
|
||||
{"1spin-punch", true, true},
|
||||
{"-spin-punch", true, true},
|
||||
{".spin-punch", true, true},
|
||||
{"1spin-punch", false, false},
|
||||
{"-spin-punch", false, false},
|
||||
{".spin-punch", false, false},
|
||||
{"Spin-punch", false, false},
|
||||
{"spin punch-", false, false},
|
||||
{"spin_punch", true, true},
|
||||
|
||||
@@ -383,6 +383,11 @@ func NewId() string {
|
||||
return encoding.EncodeToString(uuid.NewRandom())
|
||||
}
|
||||
|
||||
// NewUsername is a NewId prefixed with a letter to make valid username
|
||||
func NewUsername() string {
|
||||
return "a" + NewId()
|
||||
}
|
||||
|
||||
// NewRandomTeamName is a NewId that will be a valid team name.
|
||||
func NewRandomTeamName() string {
|
||||
teamName := NewId()
|
||||
|
||||
Ссылка в новой задаче
Block a user