using Microsoft.AspNetCore.Authorization;
namespace Dpz.Core.Auth.Security;
public static class PermissionAuthorizationExtensions
{
public static void AddPermissionAuthorization(this IServiceCollection services)
{
services.AddScoped<IAuthorizationHandler, PermissionHandler>();
var permissions = Enum.GetValues(typeof(EnumLibrary.Permissions))
.Cast<EnumLibrary.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()))
);
}
}
}