< Summary - Syki

Information
Class: Syki.Front.Auth.Policies
Assembly: Front
File(s): /home/runner/work/syki/syki/Front/Auth/FrontAdmPolicies.cs
Tag: 36_19195353031
Line coverage
0%
Covered lines: 0
Uncovered lines: 30
Coverable lines: 30
Total lines: 77
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%210%
AddAdmPolicy(...)0%2040%
AddAdmPolicies(...)100%210%

File(s)

/home/runner/work/syki/syki/Front/Auth/FrontAdmPolicies.cs

#LineLine coverage
 1using Syki.Shared.Auth;
 2using Microsoft.AspNetCore.Authorization;
 3
 4namespace Syki.Front.Auth;
 5
 6public static partial class Policies
 7{
 08    public static List<PolicyMetadata> Adm = [];
 9
 10  public const string GetUsers = nameof(GetUsers);
 11  public const string CreateUser = nameof(CreateUser);
 12
 13    public const string GetRoles = nameof(GetRoles);
 14    public const string CreateRole = nameof(CreateRole);
 15    public const string UpdateRole = nameof(UpdateRole);
 16    public const string GetFeatures = nameof(GetFeatures);
 17    public const string GetPolicies = nameof(GetPolicies);
 18
 19    public const string ViewDomainEventsPage = nameof(ViewDomainEventsPage);
 20  public const string GetDomainEvent = nameof(GetDomainEvent);
 21
 22  public const string GetCommands = nameof(GetCommands);
 23  public const string GetCommand = nameof(GetCommand);
 24  public const string ReprocessCommand = nameof(ReprocessCommand);
 25
 26  public const string GetCommandBatches = nameof(GetCommandBatches);
 27  public const string GetCommandBatch = nameof(GetCommandBatch);
 28  public const string GetCommandBatchCommands = nameof(GetCommandBatchCommands);
 29
 30  public const string GetAuditTrails = nameof(GetAuditTrails);
 31  public const string GetAuditTrail = nameof(GetAuditTrail);
 32  public const string GetAuditTrailOperations = nameof(GetAuditTrailOperations);
 33
 34    private static AuthorizationOptions AddAdmPolicy(this AuthorizationOptions options, string name, params SykiFeature[
 35    {
 036        Adm.Add(new() { Name = name, Features = features.ToList() });
 37
 038        var ids = features.Select(x => x.Id).ToList();
 39
 040        options.AddPolicy(name, policy => policy
 041            .RequireAuthenticatedUser()
 042            .RequireAssertion(x => x.User.Features.Any(f => ids.Contains(f))));
 43
 044        return options;
 45    }
 46
 47    public static AuthorizationOptions AddAdmPolicies(this AuthorizationOptions options)
 48    {
 049        options
 050            .AddAdmPolicy(GetUsers, FeaturesStore.ViewUsers)
 051            .AddAdmPolicy(CreateUser, FeaturesStore.CreateUser);
 52
 053        options
 054            .AddAdmPolicy(GetRoles, FeaturesStore.ViewRoles)
 055            .AddAdmPolicy(CreateRole, FeaturesStore.CreateRole)
 056            .AddAdmPolicy(UpdateRole, FeaturesStore.UpdateRole)
 057            .AddAdmPolicy(GetFeatures, FeaturesStore.ViewFeatures)
 058            .AddAdmPolicy(GetPolicies, FeaturesStore.ViewPolicies);
 59
 060        options
 061            .AddAdmPolicy(ViewDomainEventsPage, FeaturesStore.ViewDomainEvents)
 062            .AddAdmPolicy(GetDomainEvent, FeaturesStore.ViewDomainEventDetails)
 063            .AddAdmPolicy(GetCommands, FeaturesStore.ViewCommands)
 064            .AddAdmPolicy(GetCommand, FeaturesStore.ViewCommandDetails)
 065            .AddAdmPolicy(ReprocessCommand, FeaturesStore.ReprocessCommand)
 066            .AddAdmPolicy(GetCommandBatches, FeaturesStore.ViewCommandBatches)
 067            .AddAdmPolicy(GetCommandBatch, FeaturesStore.ViewCommandBatchDetails)
 068            .AddAdmPolicy(GetCommandBatchCommands, FeaturesStore.ViewCommandBatchDetails);
 69
 070        options
 071            .AddAdmPolicy(GetAuditTrails, FeaturesStore.ViewAuditTrails)
 072            .AddAdmPolicy(GetAuditTrail, FeaturesStore.ViewAuditTrailDetails)
 073            .AddAdmPolicy(GetAuditTrailOperations, FeaturesStore.ViewAuditTrails);
 74
 075        return options;
 76    }
 77}