< Summary

Information
Class: Elsa.Authorization.PermissionAuthorizationHandler
Assembly: Elsa.Api.Common
File(s): /home/runner/work/elsa-core/elsa-core/src/common/Elsa.Api.Common/Authorization/PermissionAuthorizationHandler.cs
Line coverage
25%
Covered lines: 1
Uncovered lines: 3
Coverable lines: 4
Total lines: 21
Line coverage: 25%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

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

File(s)

/home/runner/work/elsa-core/elsa-core/src/common/Elsa.Api.Common/Authorization/PermissionAuthorizationHandler.cs

#LineLine coverage
 1using JetBrains.Annotations;
 2using Microsoft.AspNetCore.Authorization;
 3
 4namespace Elsa.Authorization;
 5
 6/// <summary>
 7/// Evaluates <see cref="PermissionRequirement"/> through <see cref="IPermissionEvaluator"/>, replacing the
 8/// exact-string permission check so that wildcards and the resource hierarchy behave as declared.
 9/// </summary>
 10[UsedImplicitly]
 29711public sealed class PermissionAuthorizationHandler(IPermissionEvaluator evaluator) : AuthorizationHandler<PermissionRequ
 12{
 13    /// <inheritdoc />
 14    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requiremen
 15    {
 016        if (evaluator.HasPermission(context.User, requirement.Permission))
 017            context.Succeed(requirement);
 18
 019        return Task.CompletedTask;
 20    }
 21}