Browse Source

Merge pull request #23903 from abpframework/auto-merge/rel-10-0/4028

Merge branch dev with rel-10.0
pull/23905/head
Ma Liming 8 months ago
committed by GitHub
parent
commit
a1bad4e72f
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  2. 20
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor

@ -24,7 +24,7 @@
</Column> </Column>
<Column ColumnSize="ColumnSize.IsAuto"> <Column ColumnSize="ColumnSize.IsAuto">
<Field> <Field>
<Check Disabled="_selectAllDisabled" Cursor="Cursor.Pointer" CheckedChanged="@GrantAllAsync" Checked="@GrantAll" TValue="bool"> <Check Disabled="_selectAllDisabled" Cursor="Cursor.Pointer" CheckedChanged="@GrantAllAsync" Checked="@GrantAll" TValue="bool" Indeterminate="@GrantAny">
@L["SelectAllInAllTabs"] @L["SelectAllInAllTabs"]
</Check> </Check>
</Field> </Field>

20
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

@ -36,6 +36,7 @@ public partial class PermissionManagementModal
protected string _permissionGroupSearchText; protected string _permissionGroupSearchText;
protected bool GrantAll { get; set; } protected bool GrantAll { get; set; }
protected bool GrantAny { get; set; }
protected Dictionary<string, int> _permissionDepths = new Dictionary<string, int>(); protected Dictionary<string, int> _permissionDepths = new Dictionary<string, int>();
@ -61,6 +62,7 @@ public partial class PermissionManagementModal
NormalizePermissionGroup(); NormalizePermissionGroup();
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(_modal.Show); await InvokeAsync(_modal.Show);
} }
@ -73,13 +75,14 @@ public partial class PermissionManagementModal
protected virtual async Task GrantAllAsync(bool grantAll) protected virtual async Task GrantAllAsync(bool grantAll)
{ {
GrantAll = grantAll; GrantAll = grantAll;
GrantAny = false;
if (_allGroups == null) if (_allGroups == null)
{ {
return; return;
} }
await OnPermissionGroupSearchTextChangedAsync(string.Empty); await ResetSearchTextAsync();
foreach (var permission in _allGroups.SelectMany(x => x.Permissions)) foreach (var permission in _allGroups.SelectMany(x => x.Permissions))
{ {
@ -194,6 +197,7 @@ public partial class PermissionManagementModal
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
@ -216,6 +220,7 @@ public partial class PermissionManagementModal
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
@ -307,6 +312,16 @@ public partial class PermissionManagementModal
return permissions.All(x => x.IsGranted) && grantedProviders.Any(p => p.ProviderName != _providerName); return permissions.All(x => x.IsGranted) && grantedProviders.Any(p => p.ProviderName != _providerName);
} }
protected virtual async Task ResetSearchTextAsync()
{
_permissionGroupSearchText = string.Empty;
_groups = _permissionGroupSearchText.IsNullOrWhiteSpace() ? _allGroups.ToList() : _allGroups.Where(x => x.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase) || x.Permissions.Any(permission => permission.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase))).ToList();
NormalizePermissionGroup(false);
await InvokeAsync(StateHasChanged);
}
protected virtual async Task OnPermissionGroupSearchTextChangedAsync(string value) protected virtual async Task OnPermissionGroupSearchTextChangedAsync(string value)
{ {
if (value == _permissionGroupSearchText) if (value == _permissionGroupSearchText)
@ -317,6 +332,9 @@ public partial class PermissionManagementModal
_permissionGroupSearchText = value; _permissionGroupSearchText = value;
_groups = _permissionGroupSearchText.IsNullOrWhiteSpace() ? _allGroups.ToList() : _allGroups.Where(x => x.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase) || x.Permissions.Any(permission => permission.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase))).ToList(); _groups = _permissionGroupSearchText.IsNullOrWhiteSpace() ? _allGroups.ToList() : _allGroups.Where(x => x.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase) || x.Permissions.Any(permission => permission.DisplayName.Contains(_permissionGroupSearchText, StringComparison.OrdinalIgnoreCase))).ToList();
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
NormalizePermissionGroup(false); NormalizePermissionGroup(false);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);

Loading…
Cancel
Save