From c3485268d34df9570df06b6ff8ca77ef2f8d5c72 Mon Sep 17 00:00:00 2001 From: Yang Luo Date: Wed, 11 Jun 2025 00:32:05 +0800 Subject: [PATCH] feat: fix "Display name cannot be empty" in /update-user API --- controllers/user.go | 10 ++-------- object/user_util.go | 6 +++++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/controllers/user.go b/controllers/user.go index 602142bb..2fd21a95 100644 --- a/controllers/user.go +++ b/controllers/user.go @@ -282,13 +282,6 @@ func (c *ApiController) UpdateUser() { return } - if c.Input().Get("allowEmpty") == "" { - if user.DisplayName == "" { - c.ResponseError(c.T("user:Display name cannot be empty")) - return - } - } - if user.MfaEmailEnabled && user.Email == "" { c.ResponseError(c.T("user:MFA email is enabled but email is empty")) return @@ -310,7 +303,8 @@ func (c *ApiController) UpdateUser() { } isAdmin := c.IsAdmin() - if pass, err := object.CheckPermissionForUpdateUser(oldUser, &user, isAdmin, c.GetAcceptLanguage()); !pass { + allowDisplayNameEmpty := c.Input().Get("allowEmpty") != "" + if pass, err := object.CheckPermissionForUpdateUser(oldUser, &user, isAdmin, allowDisplayNameEmpty, c.GetAcceptLanguage()); !pass { c.ResponseError(err) return } diff --git a/object/user_util.go b/object/user_util.go index 938f1727..1a8a03ec 100644 --- a/object/user_util.go +++ b/object/user_util.go @@ -263,7 +263,7 @@ func ClearUserOAuthProperties(user *User, providerType string) (bool, error) { return affected != 0, nil } -func CheckPermissionForUpdateUser(oldUser, newUser *User, isAdmin bool, lang string) (bool, string) { +func CheckPermissionForUpdateUser(oldUser, newUser *User, isAdmin bool, allowDisplayNameEmpty bool, lang string) (bool, string) { organization, err := GetOrganizationByUser(oldUser) if err != nil { return false, err.Error() @@ -300,6 +300,10 @@ func CheckPermissionForUpdateUser(oldUser, newUser *User, isAdmin bool, lang str if item == nil { newUser.DisplayName = oldUser.DisplayName } else { + if !allowDisplayNameEmpty && newUser.DisplayName == "" { + return false, i18n.Translate(lang, "user:Display name cannot be empty") + } + itemsChanged = append(itemsChanged, item) } }