From 5e6703dca8379e9d0b4f9ae5255c083af7b1e2a3 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 4 Dec 2020 14:53:19 +0800 Subject: [PATCH] Use IPermissionStore in PermissionManagementProvider Resolve #6373 --- .../Identity/RolePermissionManagementProvider.cs | 4 +++- .../Identity/UserPermissionManagementProvider.cs | 8 +++++--- .../PermissionManagementProvider.cs | 11 ++++++++--- .../TestPermissionManagementProvider.cs | 6 +++--- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs index 53ebe46fb2..26125aedbf 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs @@ -15,11 +15,13 @@ namespace Volo.Abp.PermissionManagement.Identity public RolePermissionManagementProvider( IPermissionGrantRepository permissionGrantRepository, + IPermissionStore permissionStore, IGuidGenerator guidGenerator, ICurrentTenant currentTenant, IUserRoleFinder userRoleFinder) : base( permissionGrantRepository, + permissionStore, guidGenerator, currentTenant) { @@ -31,7 +33,7 @@ namespace Volo.Abp.PermissionManagement.Identity if (providerName == Name) { return new PermissionValueProviderGrantInfo( - await PermissionGrantRepository.FindAsync(name, providerName, providerKey) != null, + await PermissionStore.IsGrantedAsync(name, providerName, providerKey), providerKey ); } diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs index db9a0cbadd..e1056849da 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/UserPermissionManagementProvider.cs @@ -9,15 +9,17 @@ namespace Volo.Abp.PermissionManagement.Identity public override string Name => UserPermissionValueProvider.ProviderName; public UserPermissionManagementProvider( - IPermissionGrantRepository permissionGrantRepository, + IPermissionGrantRepository permissionGrantRepository, + IPermissionStore permissionStore, IGuidGenerator guidGenerator, - ICurrentTenant currentTenant) + ICurrentTenant currentTenant) : base( permissionGrantRepository, + permissionStore, guidGenerator, currentTenant) { } } -} \ No newline at end of file +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs index 0b83f37fd1..401c86dcd8 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using Volo.Abp.Authorization.Permissions; using Volo.Abp.Guids; using Volo.Abp.MultiTenancy; @@ -10,20 +11,24 @@ namespace Volo.Abp.PermissionManagement protected IPermissionGrantRepository PermissionGrantRepository { get; } + protected IPermissionStore PermissionStore { get; } + protected IGuidGenerator GuidGenerator { get; } protected ICurrentTenant CurrentTenant { get; } protected PermissionManagementProvider( IPermissionGrantRepository permissionGrantRepository, + IPermissionStore permissionStore, IGuidGenerator guidGenerator, ICurrentTenant currentTenant) { PermissionGrantRepository = permissionGrantRepository; + PermissionStore = permissionStore; GuidGenerator = guidGenerator; CurrentTenant = currentTenant; } - + public virtual async Task CheckAsync(string name, string providerName, string providerKey) { if (providerName != Name) @@ -32,7 +37,7 @@ namespace Volo.Abp.PermissionManagement } return new PermissionValueProviderGrantInfo( - await PermissionGrantRepository.FindAsync(name, providerName, providerKey) != null, + await PermissionStore.IsGrantedAsync(name, providerName, providerKey), providerKey ); } @@ -74,4 +79,4 @@ namespace Volo.Abp.PermissionManagement await PermissionGrantRepository.DeleteAsync(permissionGrant); } } -} \ No newline at end of file +} diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionManagementProvider.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionManagementProvider.cs index f66ed2995d..97bedc33f9 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionManagementProvider.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo/Abp/PermissionManagement/TestPermissionManagementProvider.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; +using Volo.Abp.Authorization.Permissions; using Volo.Abp.Guids; using Volo.Abp.MultiTenancy; @@ -12,10 +10,12 @@ namespace Volo.Abp.PermissionManagement public TestPermissionManagementProvider( IPermissionGrantRepository permissionGrantRepository, + IPermissionStore permissionStore, IGuidGenerator guidGenerator, ICurrentTenant currentTenant) : base( permissionGrantRepository, + permissionStore, guidGenerator, currentTenant) {