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 });
}
}