Browse Source

Fix Grant All checkbox not showing indeterminate state in permission modal

When selecting "Select All" for a specific permission group, the "Grant All Permissions"
checkbox should display an indeterminate state if not all permissions are granted.

The issue was that GrantAll and GrantAny were calculated based on _groups (filtered list)
instead of _allGroups (all groups), causing incorrect checkbox state when groups were filtered.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
pull/24807/head
maliming 2 days ago
parent
commit
68fdad506a
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 12
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -203,8 +203,8 @@ public partial class PermissionManagementModal
}
}
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
GrantAll = _allGroups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _allGroups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged);
}
@ -226,8 +226,8 @@ public partial class PermissionManagementModal
}
}
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
GrantAll = _allGroups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _allGroups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged);
}
@ -339,8 +339,8 @@ public partial class PermissionManagementModal
_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();
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
GrantAll = _allGroups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _allGroups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
NormalizePermissionGroup(false);

Loading…
Cancel
Save