From eb2313437839ef70406d340c81136b953303fd02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 16 Aug 2022 11:15:32 +0300 Subject: [PATCH] Remove permissions in a removed group --- .../StaticPermissionSaver.cs | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs index 8293bdc071..ed55e6f50e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs @@ -105,7 +105,8 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc ); } - private async Task UpdateChangedPermissionGroupsAsync(IEnumerable permissionGroupRecords) + private async Task UpdateChangedPermissionGroupsAsync( + IEnumerable permissionGroupRecords) { var newRecords = new List(); var changedRecords = new List(); @@ -157,7 +158,8 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc } } - private async Task UpdateChangedPermissionsAsync(IEnumerable permissionRecords) + private async Task UpdateChangedPermissionsAsync( + IEnumerable permissionRecords) { var newRecords = new List(); var changedRecords = new List(); @@ -187,11 +189,23 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc } /* Deleted */ - var deletedRecords = PermissionManagementOptions.DeletedPermissions.Any() - ? permissionRecordsInDatabase.Values - .Where(x => PermissionManagementOptions.DeletedPermissions.Contains(x.Name)) - .ToArray() - : Array.Empty(); + var deletedRecords = new List(); + + if (PermissionManagementOptions.DeletedPermissions.Any()) + { + deletedRecords.AddRange( + permissionRecordsInDatabase.Values + .Where(x => PermissionManagementOptions.DeletedPermissions.Contains(x.Name)) + ); + } + + if (PermissionManagementOptions.DeletedPermissionGroups.Any()) + { + deletedRecords.AddIfNotContains( + permissionRecordsInDatabase.Values + .Where(x => PermissionManagementOptions.DeletedPermissionGroups.Contains(x.GroupName)) + ); + } if (newRecords.Any()) {