< Summary - Jellyfin

Information
Class: Jellyfin.Api.Auth.FirstTimeSetupPolicy.FirstTimeSetupHandler
Assembly: Jellyfin.Api
File(s): /srv/git/jellyfin/Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 56
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
HandleRequirementAsync(...)100%88100%

File(s)

/srv/git/jellyfin/Jellyfin.Api/Auth/FirstTimeSetupPolicy/FirstTimeSetupHandler.cs

#LineLine coverage
 1using System.Threading.Tasks;
 2using Jellyfin.Api.Constants;
 3using Jellyfin.Api.Extensions;
 4using MediaBrowser.Common.Configuration;
 5using Microsoft.AspNetCore.Authorization;
 6
 7namespace Jellyfin.Api.Auth.FirstTimeSetupPolicy
 8{
 9    /// <summary>
 10    /// Authorization handler for requiring first time setup or default privileges.
 11    /// </summary>
 12    public class FirstTimeSetupHandler : AuthorizationHandler<FirstTimeSetupRequirement>
 13    {
 14        private readonly IConfigurationManager _configurationManager;
 15
 16        /// <summary>
 17        /// Initializes a new instance of the <see cref="FirstTimeSetupHandler" /> class.
 18        /// </summary>
 19        /// <param name="configurationManager">Instance of the <see cref="IConfigurationManager"/> interface.</param>
 2720        public FirstTimeSetupHandler(IConfigurationManager configurationManager)
 21        {
 2722            _configurationManager = configurationManager;
 2723        }
 24
 25        /// <inheritdoc />
 26        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, FirstTimeSetupRequirement re
 27        {
 28            // Succeed if the startup wizard / first time setup is not complete
 6229            if (!_configurationManager.CommonConfiguration.IsStartupWizardCompleted)
 30            {
 4131                context.Succeed(requirement);
 32            }
 33
 34            // Succeed if user is admin
 2135            else if (context.User.IsInRole(UserRoles.Administrator))
 36            {
 1537                context.Succeed(requirement);
 38            }
 39
 40            // Fail if admin is required and user is not admin
 641            else if (requirement.RequireAdmin)
 42            {
 343                context.Fail();
 44            }
 45
 46            // Succeed if admin is not required and user is not guest
 347            else if (context.User.IsInRole(UserRoles.User))
 48            {
 249                context.Succeed(requirement);
 50            }
 51
 52            // Any user-specific checks are handled in the DefaultAuthorizationHandler.
 6253            return Task.CompletedTask;
 54        }
 55    }
 56}