MM-54502 - Update regex to force first character to be alpha (#24675)

Automatic Merge
Этот коммит содержится в:
Scott Bishel
2024-07-31 08:27:52 -06:00
коммит произвёл GitHub
родитель 5bfb32c504
Коммит 08ed72f060
33 изменённых файлов: 286 добавлений и 280 удалений

Просмотреть файл

@@ -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()