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 1/5] 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 From e4e942cc87c80154a92f346684d74399481d74e9 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:38:22 +0300 Subject: [PATCH 2/5] permission-management: Disable permission group if all of them granted (blazor) --- .../Components/PermissionManagementModal.razor | 3 ++- .../Components/PermissionManagementModal.razor.cs | 13 +++++++++++++ .../PermissionManagementModal.cshtml.cs | 6 +----- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor index 681ccaa352..d28af8502d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor @@ -10,7 +10,7 @@ - @L["SelectAllInAllTabs"] + @L["SelectAllInAllTabs"] @@ -47,6 +47,7 @@ x.GrantedProviders); + + return permissions.All(x => x.IsGranted) && grantedProviders.All(p => p.ProviderName != _providerName); + } + + protected virtual bool IsSelectAllDisabled() + { + return _groups.All(IsPermissionGroupDisabled); + } } 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 704153bee1..7707c16799 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 @@ -129,12 +129,8 @@ public class PermissionManagementModal : AbpPageModel 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); } } From ef955cab5597dabcab567eb299d2e47354e2265e Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:42:05 +0300 Subject: [PATCH 3/5] Update PermissionManagementModal.razor --- .../Components/PermissionManagementModal.razor | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor index d28af8502d..d0297d09de 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor @@ -10,7 +10,9 @@ - @L["SelectAllInAllTabs"] + + @L["SelectAllInAllTabs"] + From 8ee413add3eaa7ed91b40013b2f898ea0d1e79fc Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:52:36 +0300 Subject: [PATCH 4/5] permission-management: Fix selectAllDisabled --- .../Components/PermissionManagementModal.razor | 2 +- .../Components/PermissionManagementModal.razor.cs | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor index d0297d09de..3f6c931d9a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor @@ -10,7 +10,7 @@ - + @L["SelectAllInAllTabs"] diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs index 3ccc29e43c..aed63fb8e1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs @@ -33,6 +33,8 @@ public partial class PermissionManagementModal protected int _grantedPermissionCount = 0; protected int _notGrantedPermissionCount = 0; + protected bool _selectAllDisabled; + protected bool GrantAll { get { if (_notGrantedPermissionCount == 0) @@ -87,6 +89,8 @@ public partial class PermissionManagementModal _entityDisplayName = entityDisplayName ?? result.EntityDisplayName; _groups = result.Groups; + _selectAllDisabled = _groups.All(IsPermissionGroupDisabled); + _grantedPermissionCount = 0; _notGrantedPermissionCount = 0; foreach (var permission in _groups.SelectMany(x => x.Permissions)) @@ -258,9 +262,4 @@ public partial class PermissionManagementModal return permissions.All(x => x.IsGranted) && grantedProviders.All(p => p.ProviderName != _providerName); } - - protected virtual bool IsSelectAllDisabled() - { - return _groups.All(IsPermissionGroupDisabled); - } } From 83c589c8ab7fd896b9eeec8a9faeb0045a9a21b2 Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Mon, 27 Feb 2023 10:27:51 +0300 Subject: [PATCH 5/5] Update permission-management-modal.js --- .../permission-management-modal.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 9577d38696..298ad3791f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -234,6 +234,14 @@ var abp = abp || {}; $('.tab-pane input[type="checkbox"]') .not(':disabled') .prop('checked', true); + + $('input[name="SelectAllInThisTab"]').each(function () { + var $this = $(this); + if($this.is(':indeterminate') === true) { + $this.prop('indeterminate', false); + $this.prop('checked', true); + } + }); } else { $('.tab-pane input[type="checkbox"]') .not(':disabled')