From a7bf81666964b184efdc474ff14bffb77b3d2197 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 2 Sep 2026 14:04:16 +0800 Subject: [PATCH] Skip the permission update when the modal posts no change - Assert that no per-permission state check runs in the batched read test --- .../PermissionManagementModal.cshtml.cs | 5 +++++ .../Volo/Abp/PermissionManagement/PermissionManager_Tests.cs | 1 + 2 files changed, 6 insertions(+) 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 863aba936d..5185475f73 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 @@ -110,6 +110,11 @@ public class PermissionManagementModal : AbpPageModel }) .ToArray(); + if (updatePermissionDtos.IsNullOrEmpty()) + { + return NoContent(); + } + await PermissionAppService.UpdateAsync( ProviderName, ProviderKey, diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs index 27fa30407d..cd9aabbc6d 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs @@ -98,6 +98,7 @@ public class PermissionManager_Tests : PermissionTestBase _stateCheckerCounter.Reset(); var grantedProviders = await _permissionManager.GetAsync(names, "Test", "Test"); _stateCheckerCounter.BatchCheckCount.ShouldBe(1); + _stateCheckerCounter.SingleCheckCount.ShouldBe(0); grantedProviders.Result.Single(x => x.Name == "MyPermission1").IsGranted.ShouldBeTrue(); grantedProviders.Result.Single(x => x.Name == "MyPermission5").IsGranted.ShouldBeFalse();