Browse Source

Fix FirstTimeSetupHandler api key test

Bill Thornton 1 year ago
parent
commit
35962bcc42

+ 5 - 0
Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs

@@ -1,5 +1,6 @@
 using System.Threading.Tasks;
 using Jellyfin.Api.Constants;
+using Jellyfin.Api.Extensions;
 using MediaBrowser.Common.Configuration;
 using Microsoft.AspNetCore.Authorization;
 
@@ -28,6 +29,10 @@ namespace Jellyfin.Api.Auth.FirstTimeSetupPolicy
             {
                 context.Succeed(requirement);
             }
+            else if (context.User.GetIsApiKey())
+            {
+                context.Succeed(requirement);
+            }
             else if (requirement.RequireAdmin && !context.User.IsInRole(UserRoles.Administrator))
             {
                 context.Fail();

+ 1 - 1
tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs

@@ -95,7 +95,7 @@ namespace Jellyfin.Api.Tests.Auth.FirstTimeSetupPolicy
         public async Task ShouldAllowAdminApiKeyIfStartupWizardComplete()
         {
             TestHelpers.SetupConfigurationManager(_configurationManagerMock, true);
-            var claims = new ClaimsPrincipal(new ClaimsIdentity([new Claim(ClaimTypes.Role, UserRoles.Administrator)]));
+            var claims = new ClaimsPrincipal(new ClaimsIdentity([new Claim(InternalClaimTypes.IsApiKey, bool.TrueString)]));
             var context = new AuthorizationHandlerContext(_requirements, claims, null);
 
             await _firstTimeSetupHandler.HandleAsync(context);