< Summary

Information
Class: Elsa.Identity.Models.RoleDeletionReferenceSelection
Assembly: Elsa.Identity
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Models/RoleDeletionModels.cs
Line coverage
100%
Covered lines: 1
Uncovered lines: 0
Coverable lines: 1
Total lines: 120
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Source()100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Identity/Models/RoleDeletionModels.cs

#LineLine coverage
 1using System.Security.Claims;
 2
 3namespace Elsa.Identity.Models;
 4
 5/// <summary>Identifies whether a role dependency can be changed through an administration API.</summary>
 6public enum RoleDeletionDependencyOwnership
 7{
 8    Configuration,
 9    Database
 10}
 11
 12/// <summary>Describes how a role-remediation command will be executed.</summary>
 13public enum RoleDeletionExecutionMode
 14{
 15    Atomic,
 16    BestEffort
 17}
 18
 19/// <summary>A safe reference to a role from an installed module.</summary>
 20public sealed record RoleDeletionDependency(
 21    string Source,
 22    string OwnerId,
 23    string OwnerKey,
 24    string PolicyBranch,
 25    RoleDeletionDependencyOwnership Ownership,
 26    string? ConfigurationPath,
 27    long? ExpectedRevision,
 28    bool RemovesLastDefaultRole);
 29
 30/// <summary>A contributor-owned dependency snapshot.</summary>
 31public sealed record RoleDeletionDependencySnapshot(
 32    string Source,
 33    string Version,
 34    bool SupportsAtomicRemoval,
 35    IReadOnlyCollection<RoleDeletionDependency> Dependencies);
 36
 37/// <summary>Identifies one editable dependency reference selected for role remediation.</summary>
 4738public sealed record RoleDeletionReferenceSelection(string Source, string OwnerId);
 39
 40/// <summary>The aggregated impact of deleting a role.</summary>
 41public sealed record RoleDeletionImpact(
 42    string RoleId,
 43    string DependencyVersion,
 44    RoleDeletionExecutionMode ExecutionMode,
 45    bool CanDelete,
 46    bool CanRemediate,
 47    IReadOnlyCollection<RoleDeletionDependency> Dependencies);
 48
 49/// <summary>Inputs used to prevalidate or remove one contributor's editable references.</summary>
 50public sealed record RoleReferenceRemovalRequest(
 51    string RoleId,
 52    ClaimsPrincipal Actor,
 53    string ExpectedContributorVersion,
 54    IReadOnlyCollection<RoleDeletionDependency> Dependencies)
 55{
 56    public IReadOnlyCollection<RoleDeletionReferenceSelection>? SelectedReferences { get; init; }
 57    public string? ReplacementRoleId { get; init; }
 58}
 59
 60/// <summary>Inputs for the coordinated remediation command.</summary>
 61public sealed record RoleDeletionRemediationCommand(
 62    string RoleId,
 63    ClaimsPrincipal Actor,
 64    string ExpectedDependencyVersion,
 65    bool ConfirmRemoveFromEditablePolicies,
 66    bool ConfirmEmptyDefaultRoles,
 67    bool ConfirmBestEffort)
 68{
 69    public IReadOnlyCollection<RoleDeletionReferenceSelection>? SelectedReferences { get; init; }
 70    public string? ReplacementRoleId { get; init; }
 71}
 72
 73public abstract record RoleReferenceRemovalValidationResult
 74{
 75    private RoleReferenceRemovalValidationResult()
 76    {
 77    }
 78
 79    public sealed record Valid : RoleReferenceRemovalValidationResult;
 80    public sealed record Forbidden(string Code) : RoleReferenceRemovalValidationResult;
 81    public sealed record Conflict(string Code) : RoleReferenceRemovalValidationResult;
 82}
 83
 84public abstract record RoleReferenceRemovalResult
 85{
 86    private RoleReferenceRemovalResult()
 87    {
 88    }
 89
 90    public sealed record Success(IReadOnlyCollection<string> ChangedOwnerIds) : RoleReferenceRemovalResult;
 91    public sealed record Conflict(string Code, IReadOnlyCollection<string> ChangedOwnerIds) : RoleReferenceRemovalResult
 92    public sealed record Failed(string Code, IReadOnlyCollection<string> ChangedOwnerIds) : RoleReferenceRemovalResult;
 93}
 94
 95public abstract record RoleDeletionInspectionResult
 96{
 97    private RoleDeletionInspectionResult()
 98    {
 99    }
 100
 101    public sealed record Success(RoleDeletionImpact Impact) : RoleDeletionInspectionResult;
 102    public sealed record NotFound : RoleDeletionInspectionResult;
 103    public sealed record Forbidden : RoleDeletionInspectionResult;
 104}
 105
 106public abstract record RoleDeletionOperationResult
 107{
 108    private RoleDeletionOperationResult()
 109    {
 110    }
 111
 112    public sealed record Deleted(IReadOnlyCollection<string> ChangedOwnerIds) : RoleDeletionOperationResult;
 113    public sealed record NotFound : RoleDeletionOperationResult;
 114    public sealed record Forbidden : RoleDeletionOperationResult;
 115    public sealed record Blocked(RoleDeletionImpact Impact) : RoleDeletionOperationResult;
 116    public sealed record PreconditionFailed(RoleDeletionImpact Impact) : RoleDeletionOperationResult;
 117    public sealed record ValidationFailed(RoleDeletionImpact Impact, string Code) : RoleDeletionOperationResult;
 118    public sealed record ConfirmationRequired(RoleDeletionImpact Impact, IReadOnlyCollection<string> Warnings) : RoleDel
 119    public sealed record Incomplete(RoleDeletionImpact Impact, IReadOnlyCollection<string> ChangedOwnerIds, string Code)
 120}

Methods/Properties

get_Source()