diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs index c0e8aa548d..6b198558fc 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RoleResourcePermissionProviderKeyLookupService.cs @@ -31,7 +31,7 @@ public class RoleResourcePermissionProviderKeyLookupService : IResourcePermissio return roles.Select(r => new ResourcePermissionProviderKeyInfo(r.RoleName, r.RoleName)).ToList(); } - public virtual async Task> SearchAsync(string[] keys, CancellationToken cancellationToken = new CancellationToken()) + public virtual async Task> SearchAsync(string[] keys, CancellationToken cancellationToken = default) { var ids = keys .Select(key => Guid.TryParse(key, out var id) ? (Guid?)id : null) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index b41c997723..3c3815a891 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -293,15 +293,17 @@ public class PermissionAppService : ApplicationService, IPermissionAppService continue; } - if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!)) + if (!await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!)) { - result.Permissions.Add(new ResourcePermissionWithProdiverGrantInfoDto - { - Name = resourcePermissionGrant.Name, - DisplayName = resourcePermission?.DisplayName.Localize(StringLocalizerFactory), - IsGranted = resourcePermissionGrant.IsGranted - }); + continue; } + + result.Permissions.Add(new ResourcePermissionWithProdiverGrantInfoDto + { + Name = resourcePermissionGrant.Name, + DisplayName = resourcePermission?.DisplayName.Localize(StringLocalizerFactory), + IsGranted = resourcePermissionGrant.IsGranted + }); } return result; @@ -310,12 +312,14 @@ public class PermissionAppService : ApplicationService, IPermissionAppService public virtual async Task UpdateResourceAsync(string resourceName, string resourceKey, UpdateResourcePermissionsDto input) { var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); + foreach (var resourcePermission in resourcePermissions) { if (!await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!)) { continue; } + var isGranted = !input.Permissions.IsNullOrEmpty() && input.Permissions.Any(p => p == resourcePermission.Name); await ResourcePermissionManager.SetAsync(resourcePermission.Name, resourceName, resourceKey, input.ProviderName, input.ProviderKey, isGranted); } @@ -326,10 +330,12 @@ public class PermissionAppService : ApplicationService, IPermissionAppService var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); foreach (var resourcePermission in resourcePermissions) { - if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!)) + if (!await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!)) { - await ResourcePermissionManager.DeleteAsync(resourcePermission.Name, resourceName, resourceKey, providerName, providerKey); + continue; } + + await ResourcePermissionManager.DeleteAsync(resourcePermission.Name, resourceName, resourceKey, providerName, providerKey); } }