//using Microsoft.Extensions.Options; //namespace Distribution.Infra.Authorization; //public class PermissionPolicyProvider : IAuthorizationPolicyProvider //{ // private readonly DefaultAuthorizationPolicyProvider _fallback; // public PermissionPolicyProvider(IOptions options) // { // _fallback = new DefaultAuthorizationPolicyProvider(options); // } // public Task GetDefaultPolicyAsync() => _fallback.GetDefaultPolicyAsync(); // public Task GetFallbackPolicyAsync() => _fallback.GetFallbackPolicyAsync(); // public Task GetPolicyAsync(string policyName) // { // if (policyName.Contains('.')) // { // var policy = new AuthorizationPolicyBuilder() // .RequireAuthenticatedUser() // .AddRequirements(new PermissionRequirement(policyName)) // .Build(); // return Task.FromResult(policy); // } // return _fallback.GetPolicyAsync(policyName); // } //}