From becf5a8a3b2645d7396d8cf2564c5c975ee0432c Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 2 Sep 2026 15:41:00 +0800 Subject: [PATCH] Deduplicate the changed permission names posted by the modal --- .../PermissionManagementModal.cshtml.cs | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs index 5185475f73..9d3d317632 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs @@ -137,10 +137,20 @@ public class PermissionManagementModal : AbpPageModel protected virtual UpdatePermissionDto[] GetChangedPermissions() { - return SplitPermissionNames(GrantedPermissionNames) - .Select(name => new UpdatePermissionDto { Name = name, IsGranted = true }) - .Concat(SplitPermissionNames(RevokedPermissionNames) - .Select(name => new UpdatePermissionDto { Name = name, IsGranted = false })) + var permissions = new Dictionary(); + + foreach (var name in SplitPermissionNames(GrantedPermissionNames)) + { + permissions[name] = true; + } + + foreach (var name in SplitPermissionNames(RevokedPermissionNames)) + { + permissions[name] = false; + } + + return permissions + .Select(permission => new UpdatePermissionDto { Name = permission.Key, IsGranted = permission.Value }) .ToArray(); } @@ -148,7 +158,9 @@ public class PermissionManagementModal : AbpPageModel { return names.IsNullOrWhiteSpace() ? Array.Empty() - : names.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + : names.Split( + new[] { '\r', '\n' }, + StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); } public class PermissionGroupViewModel