From 35962bcc420444f4aa23c1e1fa4f950de7ea9715 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 30 May 2024 12:08:52 -0400 Subject: [PATCH] Fix FirstTimeSetupHandler api key test --- .../Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs | 5 +++++ .../Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs b/Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs index 28b493fa6f..d33b59350b 100644 --- a/Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs +++ b/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(); diff --git a/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs b/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs index 06c0c108ec..c2bbc6ba0c 100644 --- a/tests/Jellyfin.Api.Tests/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandlerTests.cs +++ b/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);