From 0338de06fb2ab38538c0a50befcd9680473fbd04 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:23:22 +0300 Subject: [PATCH] permission-management: Disable permission group if all of them granted (mvc) --- .../PermissionManagementModal.cshtml | 5 +++-- .../PermissionManagementModal.cshtml.cs | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index c1fb697308..fbdffa806c 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -15,7 +15,7 @@ - +
@@ -33,7 +33,8 @@ name="SelectAllInThisTab" id="SelectAllInThisTab-@group.GetNormalizedGroupName()" data-tab-id="v-pills-tab-@group.GetNormalizedGroupName()" - label="@L["SelectAllInThisTab"].Value"/> + label="@L["SelectAllInThisTab"].Value" + disabled="@group.IsDisabled(Model.ProviderName)" />
@for (var j = 0; j < group.Permissions.Count; j++) { 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 9d91fc573e..704153bee1 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 @@ -126,6 +126,17 @@ public class PermissionManagementModal : AbpPageModel { return Name.Replace(".", "_"); } + + public bool IsDisabled(string currentProviderName) + { + if (!Permissions.Any()) + { + return false; + } + + var grantedProviders = Permissions.SelectMany(x => x.GrantedProviders); + return Permissions.All(x => x.IsGranted) && grantedProviders.All(p => p.ProviderName != currentProviderName); + } } public class PermissionGrantInfoViewModel : IFlatTreeItem