Browse Source

Merge pull request #23714 from abpframework/auto-merge/rel-9-3/3974

Merge branch dev with rel-9.3
return-code-vs-exception-article
Ma Liming 1 year ago
committed by GitHub
parent
commit
07f15199c5
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 74
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -31,11 +31,8 @@ public partial class PermissionManagementModal
protected string _selectedTabName; protected string _selectedTabName;
protected int _grantedPermissionCount = 0;
protected int _notGrantedPermissionCount = 0;
protected bool _selectAllDisabled; protected bool _selectAllDisabled;
protected string _permissionGroupSearchText; protected string _permissionGroupSearchText;
protected bool GrantAll { get; set; } protected bool GrantAll { get; set; }
@ -62,8 +59,8 @@ public partial class PermissionManagementModal
_groups = _allGroups.ToList(); _groups = _allGroups.ToList();
NormalizePermissionGroup(); NormalizePermissionGroup();
GrantAll = _notGrantedPermissionCount == 0; GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
await InvokeAsync(_modal.Show); await InvokeAsync(_modal.Show);
} }
@ -76,17 +73,14 @@ public partial class PermissionManagementModal
protected virtual async Task GrantAllAsync(bool grantAll) protected virtual async Task GrantAllAsync(bool grantAll)
{ {
GrantAll = grantAll; GrantAll = grantAll;
if (_allGroups == null) if (_allGroups == null)
{ {
return; return;
} }
_grantedPermissionCount = 0;
_notGrantedPermissionCount = 0;
await OnPermissionGroupSearchTextChangedAsync(string.Empty); await OnPermissionGroupSearchTextChangedAsync(string.Empty);
foreach (var permission in _allGroups.SelectMany(x => x.Permissions)) foreach (var permission in _allGroups.SelectMany(x => x.Permissions))
{ {
if (IsDisabledPermission(permission)) if (IsDisabledPermission(permission))
@ -95,49 +89,28 @@ public partial class PermissionManagementModal
} }
permission.IsGranted = grantAll; permission.IsGranted = grantAll;
if (grantAll)
{
_grantedPermissionCount++;
}
else
{
_notGrantedPermissionCount++;
}
} }
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
protected virtual void NormalizePermissionGroup(bool checkDisabledPermissions = true) protected virtual void NormalizePermissionGroup(bool checkDisabledPermissions = true)
{ {
_selectAllDisabled = _groups.All(IsPermissionGroupDisabled); _selectAllDisabled = _groups.All(IsPermissionGroupDisabled);
_grantedPermissionCount = 0;
_notGrantedPermissionCount = 0;
if (checkDisabledPermissions) if (checkDisabledPermissions)
{ {
_disabledPermissions.Clear(); _disabledPermissions.Clear();
} }
foreach (var permission in _groups.SelectMany(x => x.Permissions)) foreach (var permission in _groups.SelectMany(x => x.Permissions))
{ {
if (checkDisabledPermissions && permission.IsGranted && permission.GrantedProviders.All(x => x.ProviderName != _providerName)) if (checkDisabledPermissions && permission.IsGranted && permission.GrantedProviders.All(x => x.ProviderName != _providerName))
{ {
_disabledPermissions.Add(permission); _disabledPermissions.Add(permission);
continue;
}
if (permission.IsGranted)
{
_grantedPermissionCount++;
}
else
{
_notGrantedPermissionCount++;
} }
} }
foreach (var group in _groups) foreach (var group in _groups)
{ {
SetPermissionDepths(group.Permissions, null, 0); SetPermissionDepths(group.Permissions, null, 0);
@ -210,7 +183,7 @@ public partial class PermissionManagementModal
return _permissionDepths.GetValueOrDefault(name, 0); return _permissionDepths.GetValueOrDefault(name, 0);
} }
protected virtual void GroupGrantAllChanged(bool value, PermissionGroupDto permissionGroup) protected virtual async Task GroupGrantAllChanged(bool value, PermissionGroupDto permissionGroup)
{ {
foreach (var permission in permissionGroup.Permissions) foreach (var permission in permissionGroup.Permissions)
{ {
@ -219,9 +192,12 @@ public partial class PermissionManagementModal
SetPermissionGrant(permission, value); SetPermissionGrant(permission, value);
} }
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
await InvokeAsync(StateHasChanged);
} }
protected virtual void PermissionChanged(bool value, PermissionGroupDto permissionGroup, PermissionGrantInfoDto permission) protected virtual async Task PermissionChanged(bool value, PermissionGroupDto permissionGroup, PermissionGrantInfoDto permission)
{ {
SetPermissionGrant(permission, value); SetPermissionGrant(permission, value);
@ -238,6 +214,9 @@ public partial class PermissionManagementModal
SetPermissionGrant(childPermission, false); SetPermissionGrant(childPermission, false);
} }
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
await InvokeAsync(StateHasChanged);
} }
private void SetParentPermissionGrant(PermissionGroupDto permissionGroup, PermissionGrantInfoDto permission) private void SetParentPermissionGrant(PermissionGroupDto permissionGroup, PermissionGrantInfoDto permission)
@ -261,17 +240,6 @@ public partial class PermissionManagementModal
return; return;
} }
if (value)
{
_grantedPermissionCount++;
_notGrantedPermissionCount--;
}
else
{
_grantedPermissionCount--;
_notGrantedPermissionCount++;
}
permission.IsGranted = value; permission.IsGranted = value;
} }
@ -338,22 +306,22 @@ 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 OnPermissionGroupSearchTextChangedAsync(string value) protected virtual async Task OnPermissionGroupSearchTextChangedAsync(string value)
{ {
if (value == _permissionGroupSearchText) if (value == _permissionGroupSearchText)
{ {
return; return;
} }
_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();
NormalizePermissionGroup(false); NormalizePermissionGroup(false);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
protected virtual Task OnSelectedTabChangedAsync(string name) protected virtual Task OnSelectedTabChangedAsync(string name)
{ {
_selectedTabName = name; _selectedTabName = name;

Loading…
Cancel
Save