فهرست منبع

Move throw into interface to use in wizard, check for null and invalid username.

Jxiced 5 ماه پیش
والد
کامیت
e7bc86ebb8

+ 5 - 4
Jellyfin.Api/Controllers/StartupController.cs

@@ -1,3 +1,4 @@
+using System;
 using System.ComponentModel.DataAnnotations;
 using System.Linq;
 using System.Threading.Tasks;
@@ -130,16 +131,16 @@ public class StartupController : BaseJellyfinApiController
     [ProducesResponseType(StatusCodes.Status204NoContent)]
     public async Task<ActionResult> UpdateStartupUser([FromBody] StartupUserDto startupUserDto)
     {
+        ArgumentNullException.ThrowIfNull(startupUserDto.Name);
+        _userManager.ThrowIfInvalidUsername(startupUserDto.Name);
+
         var user = _userManager.Users.First();
         if (string.IsNullOrWhiteSpace(startupUserDto.Password))
         {
             return BadRequest("Password must not be empty");
         }
 
-        if (startupUserDto.Name is not null)
-        {
-            user.Username = startupUserDto.Name;
-        }
+        user.Username = startupUserDto.Name;
 
         await _userManager.UpdateUserAsync(user).ConfigureAwait(false);
 

+ 2 - 5
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -176,10 +176,6 @@ namespace Jellyfin.Server.Implementations.Users
         /// <inheritdoc/>
         public async Task UpdateUserAsync(User user)
         {
-            ArgumentNullException.ThrowIfNull(user);
-
-            ThrowIfInvalidUsername(user.Username);
-
             var dbContext = await _dbProvider.CreateDbContextAsync().ConfigureAwait(false);
             await using (dbContext.ConfigureAwait(false))
             {
@@ -737,7 +733,8 @@ namespace Jellyfin.Server.Implementations.Users
             _users[user.Id] = user;
         }
 
-        internal static void ThrowIfInvalidUsername(string name)
+        /// <inheritdoc/>
+        public void ThrowIfInvalidUsername(string name)
         {
             if (!string.IsNullOrWhiteSpace(name) && ValidUsernameRegex().IsMatch(name))
             {

+ 6 - 0
MediaBrowser.Controller/Library/IUserManager.cs

@@ -33,6 +33,12 @@ namespace MediaBrowser.Controller.Library
         /// <value>The users ids.</value>
         IEnumerable<Guid> UsersIds { get; }
 
+        /// <summary>
+        /// Checks if the user's username is valid.
+        /// </summary>
+        /// <param name="name">The user's username.</param>
+        void ThrowIfInvalidUsername(string name);
+
         /// <summary>
         /// Initializes the user manager and ensures that a user exists.
         /// </summary>