From 8fbd33be0951578ba7b4809c2347864700c318d2 Mon Sep 17 00:00:00 2001 From: Steven Date: Mon, 18 Sep 2023 22:37:13 +0800 Subject: [PATCH] chore: update username matcher --- api/v1/auth.go | 3 ++- api/v1/user.go | 5 +++-- api/v2/user_service.go | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/api/v1/auth.go b/api/v1/auth.go index d124be94..0225b8d0 100644 --- a/api/v1/auth.go +++ b/api/v1/auth.go @@ -6,6 +6,7 @@ import ( "fmt" "net/http" "regexp" + "strings" "time" "github.com/labstack/echo/v4" @@ -283,7 +284,7 @@ func (s *APIV1Service) SignUp(c echo.Context) error { if err != nil { return echo.NewHTTPError(http.StatusBadRequest, "Failed to find users").SetInternal(err) } - if !usernameMatcher.MatchString(signup.Username) { + if !usernameMatcher.MatchString(strings.ToLower(signup.Username)) { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid username %s", signup.Username)).SetInternal(err) } diff --git a/api/v1/user.go b/api/v1/user.go index ed509330..fca131ad 100644 --- a/api/v1/user.go +++ b/api/v1/user.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "net/http" + "strings" "time" "github.com/labstack/echo/v4" @@ -140,7 +141,7 @@ func (s *APIV1Service) CreateUser(c echo.Context) error { if err := userCreate.Validate(); err != nil { return echo.NewHTTPError(http.StatusBadRequest, "Invalid user create format").SetInternal(err) } - if !usernameMatcher.MatchString(userCreate.Username) { + if !usernameMatcher.MatchString(strings.ToLower(userCreate.Username)) { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid username %s", userCreate.Username)).SetInternal(err) } // Disallow host user to be created. @@ -365,7 +366,7 @@ func (s *APIV1Service) UpdateUser(c echo.Context) error { userUpdate.RowStatus = &rowStatus } if request.Username != nil { - if !usernameMatcher.MatchString(*request.Username) { + if !usernameMatcher.MatchString(strings.ToLower(*request.Username)) { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid username %s", *request.Username)).SetInternal(err) } userUpdate.Username = request.Username diff --git a/api/v2/user_service.go b/api/v2/user_service.go index 0d22b200..706251d5 100644 --- a/api/v2/user_service.go +++ b/api/v2/user_service.go @@ -4,6 +4,7 @@ import ( "context" "net/http" "regexp" + "strings" "time" "github.com/golang-jwt/jwt/v4" @@ -77,7 +78,7 @@ func (s *UserService) UpdateUser(ctx context.Context, request *apiv2pb.UpdateUse } for _, path := range request.UpdateMask { if path == "username" { - if !usernameMatcher.MatchString(request.User.Username) { + if !usernameMatcher.MatchString(strings.ToLower(request.User.Username)) { return nil, status.Errorf(codes.InvalidArgument, "invalid username: %s", request.User.Username) } update.Username = &request.User.Username