diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationServiceExtensions.cs b/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs similarity index 94% rename from src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationServiceExtensions.cs rename to src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs index 637c82b040..8ddbc4fe72 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationServiceExtensions.cs +++ b/src/Volo.Abp.Authorization/Microsoft/AspNetCore/Authorization/AbpAuthorizationServiceExtensions.cs @@ -1,15 +1,15 @@ using System.Collections.Generic; using System.Threading.Tasks; -using Microsoft.AspNetCore.Authorization; +using Volo.Abp; +using Volo.Abp.Authorization; -namespace Volo.Abp.Authorization +namespace Microsoft.AspNetCore.Authorization { public static class AbpAuthorizationServiceExtensions { public static Task AuthorizeAsync(this IAuthorizationService authorizationService, string policyName) { - return authorizationService.AuthorizeAsync( - authorizationService.AsAbpAuthorizationService().CurrentPrincipal, + return AuthorizeAsync(authorizationService, authorizationService.AsAbpAuthorizationService().CurrentPrincipal, policyName ); } @@ -34,8 +34,7 @@ namespace Volo.Abp.Authorization public static Task AuthorizeAsync(this IAuthorizationService authorizationService, AuthorizationPolicy policy) { - return authorizationService.AuthorizeAsync( - authorizationService.AsAbpAuthorizationService().CurrentPrincipal, + return AuthorizeAsync(authorizationService, authorizationService.AsAbpAuthorizationService().CurrentPrincipal, policy ); } diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs index e573c70c58..f636877fc1 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs @@ -25,17 +25,22 @@ namespace Volo.Abp.Authorization public override async Task GetPolicyAsync(string policyName) { - var permission = _permissionDefinitionManager.GetOrNull(policyName); + var policy = await base.GetPolicyAsync(policyName); + if (policy != null) + { + return policy; + } - if (permission == null) + var permission = _permissionDefinitionManager.GetOrNull(policyName); + if (permission != null) { - return await base.GetPolicyAsync(policyName); + //TODO: Optimize & Cache! + var policyBuilder = new AuthorizationPolicyBuilder(Array.Empty()); + policyBuilder.Requirements.Add(new PermissionRequirement(policyName)); + return policyBuilder.Build(); } - //TODO: Optimize & Cache! - var policyBuilder = new AuthorizationPolicyBuilder(Array.Empty()); - policyBuilder.Requirements.Add(new PermissionRequirement(policyName)); - return policyBuilder.Build(); + return null; } public Task> GetPoliciesNamesAsync()