< Summary

Information
Class: Elsa.ExternalAuthentication.Policies.RejectUnlinkedIdentityPolicy
Assembly: Elsa.ExternalAuthentication
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.ExternalAuthentication/Policies/RejectUnlinkedIdentityPolicy.cs
Line coverage
30%
Covered lines: 3
Uncovered lines: 7
Coverable lines: 10
Total lines: 29
Line coverage: 30%
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_Type()100%11100%
Describe()100%210%
EvaluateAsync(...)100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.ExternalAuthentication/Policies/RejectUnlinkedIdentityPolicy.cs

#LineLine coverage
 1using Elsa.ExternalAuthentication.Contracts;
 2using Elsa.ExternalAuthentication.Models;
 3
 4namespace Elsa.ExternalAuthentication.Policies;
 5
 6/// <summary>
 7/// Safely rejects external identities that have no explicit link.
 8/// </summary>
 9public sealed class RejectUnlinkedIdentityPolicy : IUnlinkedIdentityPolicy
 10{
 11    public const string PolicyType = "reject";
 12    public const string SafeReason = "identity_unlinked";
 13
 414    public string Type => PolicyType;
 15
 016    public UnlinkedIdentityPolicyDescriptor Describe() => new(
 017        Type,
 018        "Reject unlinked identities",
 019        "Requires an administrator to link an external identity before it can sign in.",
 020        1,
 021        [],
 022        null);
 23
 24    public ValueTask<UnlinkedIdentityDecision> EvaluateAsync(UnlinkedIdentityContext context, CancellationToken cancella
 25    {
 226        cancellationToken.ThrowIfCancellationRequested();
 227        return ValueTask.FromResult<UnlinkedIdentityDecision>(new UnlinkedIdentityDecision.Reject(SafeReason));
 28    }
 29}