From 771f96031d3c1672551efa104fae8afe563d64cf Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 3 Feb 2026 15:03:26 +0800 Subject: [PATCH] Refactor permission management logic to simplify IsDisabled checks --- .../PermissionManagementModal.cshtml.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 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 3061532879..8b62db692d 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 @@ -135,9 +135,7 @@ public class PermissionManagementModal : AbpPageModel public bool IsDisabled(string currentProviderName) { - var grantedProviders = Permissions.SelectMany(x => x.GrantedProviders); - - return Permissions.All(x => x.IsGranted && x.IsGranted) && grantedProviders.All(p => p.ProviderName != currentProviderName); + return Permissions.All(p => p.IsDisabled(currentProviderName)); } } @@ -163,7 +161,7 @@ public class PermissionManagementModal : AbpPageModel public bool IsDisabled(string currentProviderName) { - return IsEditable && IsGranted && GrantedProviders.All(p => p.ProviderName != currentProviderName); + return !IsEditable || (IsGranted && GrantedProviders.All(p => p.ProviderName != currentProviderName)); } public string GetShownName(string currentProviderName) @@ -175,6 +173,7 @@ public class PermissionManagementModal : AbpPageModel var grantedByOtherProviders = GrantedProviders .Where(p => p.ProviderName != currentProviderName) + .Select(p => p.ProviderName) .ToList(); if (!grantedByOtherProviders.Any())