src/Saas.Lib/Saas.Identity/Authorization/Requirement/SaasUserPermissionRequirement.cs (20 lines of code) (raw):

using Saas.Identity.Authorization.Attribute; using Saas.Identity.Authorization.Model; using Saas.Identity.Authorization.Model.Data; using Saas.Identity.Authorization.Model.Kind; namespace Saas.Identity.Authorization.Requirement; [SaasRequirement(UserPermission.EntityName)] public sealed record SaasUserPermissionRequirement : SaasRequirementBase, ISaasRequirement { public static string PermissionEntityName => UserPermission.EntityName; public SaasUserPermissionRequirement(SaasPolicy policy) : base(policy) { } public SaasUserPermissionRequirement() { } public override int PermissionValue() { return Enum.TryParse<UserPermissionKind>(Policy.Value, out var saasUserPermission) ? (int)saasUserPermission : throw new InvalidOperationException($"Unable to parse policy value '{Policy?.Value}' to enum of type {nameof(UserPermissionKind)}"); } }