浏览代码

Merge pull request #5250 from barronpm/user-rename-fix

Fix user renaming logic

(cherry picked from commit b4c2086138cf51be0df6c116533de78ed08fc7d2)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
dkanada 4 年之前
父节点
当前提交
a1773ce97b
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      Jellyfin.Server.Implementations/Users/UserManager.cs

+ 9 - 1
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -148,7 +148,7 @@ namespace Jellyfin.Server.Implementations.Users
                 throw new ArgumentException("The new and old names must be different.");
             }
 
-            if (Users.Any(u => u.Id != user.Id && u.Username.Equals(newName, StringComparison.Ordinal)))
+            if (Users.Any(u => u.Id != user.Id && u.Username.Equals(newName, StringComparison.OrdinalIgnoreCase)))
             {
                 throw new ArgumentException(string.Format(
                     CultureInfo.InvariantCulture,
@@ -207,6 +207,14 @@ namespace Jellyfin.Server.Implementations.Users
                 throw new ArgumentException("Usernames can contain unicode symbols, numbers (0-9), dashes (-), underscores (_), apostrophes ('), and periods (.)");
             }
 
+            if (Users.Any(u => u.Username.Equals(name, StringComparison.OrdinalIgnoreCase)))
+            {
+                throw new ArgumentException(string.Format(
+                    CultureInfo.InvariantCulture,
+                    "A user with the name '{0}' already exists.",
+                    name));
+            }
+
             await using var dbContext = _dbProvider.CreateContext();
 
             var newUser = await CreateUserInternalAsync(name, dbContext).ConfigureAwait(false);