Browse Source

Get child permissions by parent instead name.

pull/18743/head
maliming 2 years ago
parent
commit
2ebbf01ada
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 34
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -17,7 +17,7 @@ public partial class PermissionManagementModal
[Inject] protected ICurrentApplicationConfigurationCacheResetService CurrentApplicationConfigurationCacheResetService { get; set; }
[Inject] protected IOptions<AbpLocalizationOptions> LocalizationOptions { get; set; }
protected Modal _modal;
protected string _providerName;
@ -71,7 +71,7 @@ public partial class PermissionManagementModal
}
}
}
protected Dictionary<string, int> _permissionDepths = new Dictionary<string, int>();
public PermissionManagementModal()
@ -137,7 +137,7 @@ public partial class PermissionManagementModal
{
try
{
var updateDto = new UpdatePermissionsDto
{
Permissions = _groups
@ -145,7 +145,7 @@ public partial class PermissionManagementModal
.Select(p => new UpdatePermissionDto { IsGranted = p.IsGranted, Name = p.Name })
.ToArray()
};
if (!updateDto.Permissions.Any(x => x.IsGranted))
{
if (!await Message.Confirm(L["SaveWithoutAnyPermissionsWarningMessage"].Value))
@ -182,7 +182,7 @@ public partial class PermissionManagementModal
}
}
}
protected virtual int GetPermissionDepthOrDefault(string name)
{
return _permissionDepths.GetValueOrDefault(name, 0);
@ -207,7 +207,7 @@ public partial class PermissionManagementModal
{
SetParentPermissionGrant(permissionGroup, permission);
}
else if (value == false)
else
{
var childPermissions = GetChildPermissions(permissionGroup, permission);
@ -229,7 +229,7 @@ public partial class PermissionManagementModal
SetPermissionGrant(parentPermission, true);
SetParentPermissionGrant(permissionGroup, parentPermission);
}
private void SetPermissionGrant(PermissionGrantInfoDto permission, bool value)
@ -260,7 +260,25 @@ public partial class PermissionManagementModal
protected List<PermissionGrantInfoDto> GetChildPermissions(PermissionGroupDto permissionGroup, PermissionGrantInfoDto permission)
{
return permissionGroup.Permissions.Where(x => x.Name.StartsWith(permission.Name)).ToList();
var childPermissions = new List<PermissionGrantInfoDto>();
GetChildPermissions(childPermissions, permissionGroup.Permissions, permission);
return childPermissions;
}
protected void GetChildPermissions(List<PermissionGrantInfoDto> allChildPermissions, List<PermissionGrantInfoDto> permissions, PermissionGrantInfoDto permission)
{
var childPermissions = permissions.Where(x => x.ParentName == permission.Name).ToList();
if (childPermissions.Count == 0)
{
return;
}
allChildPermissions.AddRange(childPermissions);
foreach (var childPermission in childPermissions)
{
GetChildPermissions(allChildPermissions, permissions, childPermission);
}
}
protected bool IsDisabledPermission(PermissionGrantInfoDto permissionGrantInfo)

Loading…
Cancel
Save