Browse Source

Improve permission management blazor modal

pull/5444/head
Ahmet Çotur 6 years ago
parent
commit
3e86d79133
  1. 3
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  2. 31
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -58,7 +58,8 @@
<Check
Disabled="@(IsDisabledPermission(permission))"
Cursor="Cursor.Pointer"
@bind-checked="@permission.IsGranted"
Checked="@permission.IsGranted"
CheckedChanged="@(b => PermissionChanged(b, group.Name, permission))"
TValue="bool">
@permission.DisplayName
</Check>

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

@ -111,6 +111,37 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
}
}
private void PermissionChanged(bool value, string groupName, PermissionGrantInfoDto permission)
{
permission.IsGranted = value;
if (value == false)
{
var childPermissions = GetChildPermissions(groupName, permission);
foreach (var permissionGrantInfoDto in childPermissions)
{
permissionGrantInfoDto.IsGranted = false;
}
}
else if (permission.ParentName != null)
{
var parentPermission = GetParentPermission(groupName, permission);
parentPermission.IsGranted = true;
}
}
private PermissionGrantInfoDto GetParentPermission(string groupName, PermissionGrantInfoDto permission)
{
return _groups.First(x => x.Name == groupName).Permissions.First(x => x.Name == permission.ParentName);
}
private List<PermissionGrantInfoDto> GetChildPermissions(string groupName, PermissionGrantInfoDto permission)
{
return _groups.First(x => x.Name == groupName).Permissions.Where(x => x.Name.StartsWith(permission.Name)).ToList();
}
private bool IsDisabledPermission(PermissionGrantInfoDto permissionGrantInfo)
{
return _disabledPermissions.Any(x => x == permissionGrantInfo);

Loading…
Cancel
Save