< Summary - Syki

Information
Line coverage
75%
Covered lines: 30
Uncovered lines: 10
Coverable lines: 40
Total lines: 106
Line coverage: 75%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: .cctor()100%11100%
File 1: AddAdmPolicy(...)50%4483.33%
File 1: AddAdmPolicies(...)100%11100%
File 2: .cctor()100%11100%
File 2: AddCrossPolicy(...)100%210%
File 2: AddCrossPolicies(...)100%210%

File(s)

/home/runner/work/syki/syki/Back/Auth/BackAdmPolicies.cs

#LineLine coverage
 1using Syki.Shared.Auth;
 2
 3namespace Syki.Back.Auth;
 4
 5public static partial class Policies
 6{
 27    public static List<PolicyMetadata> Adm = [];
 8
 9  public const string GetUsers = nameof(GetUsers);
 10  public const string CreateUser = nameof(CreateUser);
 11
 12    public const string GetRoles = nameof(GetRoles);
 13    public const string CreateRole = nameof(CreateRole);
 14    public const string UpdateRole = nameof(UpdateRole);
 15    public const string GetFeatures = nameof(GetFeatures);
 16    public const string GetPolicies = nameof(GetPolicies);
 17
 18    public const string GetDomainEvents = nameof(GetDomainEvents);
 19  public const string GetDomainEvent = nameof(GetDomainEvent);
 20
 21  public const string GetCommands = nameof(GetCommands);
 22  public const string GetCommand = nameof(GetCommand);
 23  public const string ReprocessCommand = nameof(ReprocessCommand);
 24
 25  public const string GetCommandBatches = nameof(GetCommandBatches);
 26  public const string GetCommandBatch = nameof(GetCommandBatch);
 27  public const string GetCommandBatchCommands = nameof(GetCommandBatchCommands);
 28
 29  public const string GetAuditTrails = nameof(GetAuditTrails);
 30  public const string GetAuditTrail = nameof(GetAuditTrail);
 31  public const string GetAuditTrailOperations = nameof(GetAuditTrailOperations);
 32
 33    public static AuthorizationBuilder AddAdmPolicy(this AuthorizationBuilder builder, string name, params SykiFeature[]
 34    {
 3635        Adm.Add(new() { Name = name, Features = features.ToList() });
 36
 7237        var ids = features.Select(x => x.Id).ToList();
 38
 7239        return builder.AddPolicy(name, policy => policy
 7240            .RequireAuthenticatedUser()
 041            .RequireAssertion(x => x.User.Features.Any(f => ids.Contains(f)))
 7242            .AddAuthenticationSchemes(AuthenticationConfigs.BearerScheme));
 43    }
 44
 45    public static AuthorizationBuilder AddAdmPolicies(this AuthorizationBuilder builder)
 46    {
 247        builder
 248            .AddAdmPolicy(GetUsers, FeaturesStore.ViewUsers)
 249            .AddAdmPolicy(CreateUser, FeaturesStore.CreateUser);
 50
 251        builder
 252            .AddAdmPolicy(GetRoles, FeaturesStore.ViewRoles)
 253            .AddAdmPolicy(CreateRole, FeaturesStore.CreateRole)
 254            .AddAdmPolicy(UpdateRole, FeaturesStore.UpdateRole)
 255            .AddAdmPolicy(GetFeatures, FeaturesStore.ViewFeatures)
 256            .AddAdmPolicy(GetPolicies, FeaturesStore.ViewPolicies);
 57
 258        builder
 259            .AddAdmPolicy(GetDomainEvents, FeaturesStore.ViewDomainEvents)
 260            .AddAdmPolicy(GetDomainEvent, FeaturesStore.ViewDomainEventDetails)
 261            .AddAdmPolicy(GetCommands, FeaturesStore.ViewCommands)
 262            .AddAdmPolicy(GetCommand, FeaturesStore.ViewCommandDetails)
 263            .AddAdmPolicy(ReprocessCommand, FeaturesStore.ReprocessCommand)
 264            .AddAdmPolicy(GetCommandBatches, FeaturesStore.ViewCommandBatches)
 265            .AddAdmPolicy(GetCommandBatch, FeaturesStore.ViewCommandBatchDetails)
 266            .AddAdmPolicy(GetCommandBatchCommands, FeaturesStore.ViewCommandBatchDetails);
 67
 268        builder
 269            .AddAdmPolicy(GetAuditTrails, FeaturesStore.ViewAuditTrails)
 270            .AddAdmPolicy(GetAuditTrail, FeaturesStore.ViewAuditTrailDetails)
 271            .AddAdmPolicy(GetAuditTrailOperations, FeaturesStore.ViewAuditTrails);
 72
 273        return builder;
 74    }
 75}

/home/runner/work/syki/syki/Back/Auth/BackCrossPolicies.cs

#LineLine coverage
 1using Syki.Shared.Auth;
 2
 3namespace Syki.Back.Auth;
 4
 5public static partial class Policies
 6{
 27  public static List<PolicyMetadata> Cross = [];
 8
 9  public const string GetUserAccount = nameof(GetUserAccount);
 10  public const string GetTwoFactorAuthenticationKey = nameof(GetTwoFactorAuthenticationKey);
 11  public const string SetupTwoFactorAuthentication = nameof(SetupTwoFactorAuthentication);
 12
 13  public static AuthorizationBuilder AddCrossPolicy(this AuthorizationBuilder builder, string name)
 14  {
 015    Cross.Add(new() { Name = name });
 16
 017    return builder.AddPolicy(name, policy => policy
 018      .RequireAuthenticatedUser()
 019      .AddAuthenticationSchemes(AuthenticationConfigs.BearerScheme));
 20  }
 21
 22  public static AuthorizationBuilder AddCrossPolicies(this AuthorizationBuilder builder)
 23  {
 024    builder
 025      .AddCrossPolicy(GetUserAccount)
 026      .AddCrossPolicy(GetTwoFactorAuthenticationKey)
 027      .AddCrossPolicy(SetupTwoFactorAuthentication);
 28
 029    return builder;
 30  }
 31}