using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.Options; namespace Nuuru.Server.Auth { public class PermissionPolicyProvider : DefaultAuthorizationPolicyProvider { private readonly AuthorizationOptions _fallbackOptions; public PermissionPolicyProvider(IOptions options) : base(options) { _fallbackOptions = options.Value; } public override Task GetPolicyAsync(string policyName) { if (string.IsNullOrEmpty(policyName)) return base.GetPolicyAsync(policyName); var policy = new AuthorizationPolicyBuilder() .RequireClaim(Permissions.ClaimType, policyName) .Build(); return Task.FromResult(policy); } } }