Restrict usernames from containing spaces

This commit is contained in:
2025-06-12 10:49:02 +08:00
parent 8e134a6b38
commit c842af3855

View File

@@ -11,6 +11,7 @@ import (
"nysoure/server/utils" "nysoure/server/utils"
"os" "os"
"strconv" "strconv"
"strings"
"sync" "sync"
"time" "time"
@@ -69,6 +70,9 @@ func CreateUser(username, password, cfToken string) (model.UserViewWithToken, er
if usernameLen < 3 || usernameLen > 20 { if usernameLen < 3 || usernameLen > 20 {
return model.UserViewWithToken{}, model.NewRequestError("Username must be between 3 and 20 characters") return model.UserViewWithToken{}, model.NewRequestError("Username must be between 3 and 20 characters")
} }
if strings.Contains(username, " ") {
return model.UserViewWithToken{}, model.NewRequestError("Username cannot contain spaces")
}
if len(password) < 6 || len(password) > 20 { if len(password) < 6 || len(password) > 20 {
return model.UserViewWithToken{}, model.NewRequestError("Password must be between 6 and 20 characters") return model.UserViewWithToken{}, model.NewRequestError("Password must be between 6 and 20 characters")
} }
@@ -327,9 +331,14 @@ func GetUserByUsername(username string) (model.UserView, error) {
} }
func ChangeUsername(uid uint, newUsername string) (model.UserView, error) { func ChangeUsername(uid uint, newUsername string) (model.UserView, error) {
if len(newUsername) < 3 || len(newUsername) > 20 { usernameLen := len([]rune(newUsername))
if usernameLen < 3 || usernameLen > 20 {
return model.UserView{}, model.NewRequestError("Username must be between 3 and 20 characters") return model.UserView{}, model.NewRequestError("Username must be between 3 and 20 characters")
} }
if strings.Contains(newUsername, " ") {
return model.UserView{}, model.NewRequestError("Username cannot contain spaces")
}
user, err := dao.GetUserByID(uid) user, err := dao.GetUserByID(uid)
if err != nil { if err != nil {
return model.UserView{}, err return model.UserView{}, err