From 8e134a6b382d8179b1c5c9fe8c5305294a814a89 Mon Sep 17 00:00:00 2001 From: nyne Date: Tue, 10 Jun 2025 18:24:11 +0800 Subject: [PATCH] Validate username length using rune count for accurate character measurement --- server/service/user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/service/user.go b/server/service/user.go index cc3a6e0..6b7a931 100644 --- a/server/service/user.go +++ b/server/service/user.go @@ -65,7 +65,8 @@ func CreateUser(username, password, cfToken string) (model.UserViewWithToken, er if !config.AllowRegister() { return model.UserViewWithToken{}, model.NewRequestError("User registration is not allowed") } - if len(username) < 3 || len(username) > 20 { + usernameLen := len([]rune(username)) + if usernameLen < 3 || usernameLen > 20 { return model.UserViewWithToken{}, model.NewRequestError("Username must be between 3 and 20 characters") } if len(password) < 6 || len(password) > 20 {