namespace Dpz.Core.WebApi.Security;
/// <summary>
/// 权限授权扩展
/// </summary>
public static class PermissionAuthorizationExtensions
{
/// <summary>
/// 添加权限授权
/// </summary>
/// <param name="services"></param>
public static void AddPermissionAuthorization(this IServiceCollection services)
{
services.AddScoped<IAuthorizationHandler, PermissionHandler>();
var permissions = Enum.GetValues(typeof(Permissions))
.Cast<Permissions>()
.Where(p => p != 0);
var builder = services.AddAuthorizationBuilder();
foreach (var permission in permissions)
{
builder.AddPolicy(
permission.ToString(),
policy => policy.Requirements.Add(new PermissionRequirement(permission.ToString()))
);
}
}
}