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 2d89ff866d..fc9884bf4e 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 @@ -24,7 +24,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 b2c998eb4f..0680ac9390 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 @@ -38,43 +38,7 @@ public partial class PermissionManagementModal protected string _permissionGroupSearchText; - protected bool GrantAll { - get { - if (_notGrantedPermissionCount == 0) - { - return true; - } - - return false; - } - set { - if (_groups == null) - { - return; - } - - _grantedPermissionCount = 0; - _notGrantedPermissionCount = 0; - Task.Run(()=>OnPermissionGroupSearchTextChangedAsync(null)); - - foreach (var permission in _allGroups.SelectMany(x => x.Permissions)) - { - if (!IsDisabledPermission(permission)) - { - permission.IsGranted = value; - - if (value) - { - _grantedPermissionCount++; - } - else - { - _notGrantedPermissionCount++; - } - } - } - } - } + protected bool GrantAll { get; set; } protected Dictionary _permissionDepths = new Dictionary(); @@ -98,6 +62,8 @@ public partial class PermissionManagementModal _groups = _allGroups.ToList(); NormalizePermissionGroup(); + + GrantAll = _notGrantedPermissionCount == 0; await InvokeAsync(_modal.Show); } @@ -106,6 +72,37 @@ public partial class PermissionManagementModal await HandleErrorAsync(ex); } } + + protected virtual async Task GrantAllAsync(bool grantAll) + { + GrantAll = grantAll; + + if (_allGroups == null) + { + return; + } + _grantedPermissionCount = 0; + _notGrantedPermissionCount = 0; + + await OnPermissionGroupSearchTextChangedAsync(string.Empty); + + foreach (var permission in _allGroups.SelectMany(x => x.Permissions)) + { + if (!IsDisabledPermission(permission)) + { + permission.IsGranted = grantAll; + + if (grantAll) + { + _grantedPermissionCount++; + } + else + { + _notGrantedPermissionCount++; + } + } + } + } protected void NormalizePermissionGroup() {