using System.Security.Claims; using Microsoft.AspNetCore.Authorization; namespace Bit.Api.Utilities; public static class AuthorizationServiceExtensions { /// /// Checks if a user meets a specific requirement. /// /// The providing authorization. /// The user to evaluate the policy against. /// The requirement to evaluate the policy against. /// /// A flag indicating whether requirement evaluation has succeeded or failed. /// This value is true when the user fulfills the policy, otherwise false. /// public static Task AuthorizeAsync(this IAuthorizationService service, ClaimsPrincipal user, IAuthorizationRequirement requirement) { if (service == null) { throw new ArgumentNullException(nameof(service)); } if (requirement == null) { throw new ArgumentNullException(nameof(requirement)); } return service.AuthorizeAsync(user, resource: null, new[] { requirement }); } }