Browse Source

improved blazor permission management modal

pull/5399/head
Ahmet Çotur 6 years ago
parent
commit
e6e9cbd75c
  1. 19
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  2. 34
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -5,13 +5,13 @@
<ModalBackdrop /> <ModalBackdrop />
<ModalContent Size="ModalSize.Large" IsCentered="true"> <ModalContent Size="ModalSize.Large" IsCentered="true">
<ModalHeader> <ModalHeader>
<ModalTitle>@L["Permissions"] - @_providerKey</ModalTitle> <ModalTitle>@L["Permissions"] - @_entityDisplayName</ModalTitle>
<CloseButton Clicked="CloseModal" /> <CloseButton Clicked="CloseModal" />
</ModalHeader> </ModalHeader>
<ModalBody MaxHeight="50"> <ModalBody MaxHeight="50">
<Field> <Field>
<Check Cursor="Cursor.Pointer" Checked="@GrantAll" CheckedChanged="GrantAllChanged" TValue="bool">@L["SelectAllInAllTabs"]</Check> <Check Cursor="Cursor.Pointer" Checked="@GrantAll" CheckedChanged="@GrantAllChanged" TValue="bool">@L["SelectAllInAllTabs"]</Check>
</Field> </Field>
<Divider /> <Divider />
@ -44,23 +44,24 @@
<TabPanel Name="@GetNormalizedGroupName(group.Name)"> <TabPanel Name="@GetNormalizedGroupName(group.Name)">
<h4>@group.DisplayName</h4> <h4>@group.DisplayName</h4>
@{
/* TODO: add Select All In This Tab
<Divider /> <Divider />
<Field> <Field>
<Check Cursor="Cursor.Pointer" TValue="bool">@L["SelectAllInThisTab"]</Check> <Check Checked="@(group.Permissions.All(x => x.IsGranted))" Cursor="Cursor.Pointer" CheckedChanged="@(b => GroupGrantAllChanged(b, group.Name))" TValue="bool">@L["SelectAllInThisTab"]</Check>
</Field> </Field>
<Divider /> <Divider />
*/
}
@foreach (var permission in group.Permissions) @foreach (var permission in group.Permissions)
{ {
<Field Margin="permission.ParentName != null ? Blazorise.Margin.Is3.OnAll : Blazorise.Margin.Is0.OnAll"> <Field Margin="permission.ParentName != null ? Blazorise.Margin.Is3.OnAll : Blazorise.Margin.Is0.OnAll">
<Check Cursor="Cursor.Pointer" @bind-checked="@permission.IsGranted" TValue="bool">@permission.DisplayName</Check> <Check
Disabled="@(IsDisabledPermission(permission))"
Cursor="Cursor.Pointer"
@bind-checked="@permission.IsGranted"
TValue="bool">
@permission.DisplayName
</Check>
</Field> </Field>
} }

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

@ -18,6 +18,8 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
private string _entityDisplayName; private string _entityDisplayName;
private List<PermissionGroupDto> _groups; private List<PermissionGroupDto> _groups;
private List<PermissionGrantInfoDto> _disabledPermissions;
private bool GrantAll private bool GrantAll
{ {
get get
@ -35,7 +37,10 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
{ {
foreach (var permission in permissionGroupDto.Permissions) foreach (var permission in permissionGroupDto.Permissions)
{ {
permission.IsGranted = value; if (!IsDisabledPermission(permission))
{
permission.IsGranted = value;
}
} }
} }
} }
@ -51,6 +56,13 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
_entityDisplayName = result.EntityDisplayName; _entityDisplayName = result.EntityDisplayName;
_groups = result.Groups; _groups = result.Groups;
_disabledPermissions =
_groups.SelectMany(x => x.Permissions)
.Where(
x => x.IsGranted &&
x.GrantedProviders.All(y => y.ProviderName != _providerName)
).ToList();
_modal.Show(); _modal.Show();
} }
@ -74,14 +86,30 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
_modal.Hide(); _modal.Hide();
} }
public string GetNormalizedGroupName(string name) private string GetNormalizedGroupName(string name)
{ {
return "PermissionGroup_" + name.Replace(".", "_"); return "PermissionGroup_" + name.Replace(".", "_");
} }
public void GrantAllChanged(bool value) private void GrantAllChanged(bool value)
{ {
GrantAll = value; GrantAll = value;
} }
private void GroupGrantAllChanged(bool value, string groupName)
{
foreach (var permission in _groups.First(x => x.Name == groupName).Permissions)
{
if (!IsDisabledPermission(permission))
{
permission.IsGranted = value;
}
}
}
private bool IsDisabledPermission(PermissionGrantInfoDto permissionGrantInfo)
{
return _disabledPermissions.Any(x => x == permissionGrantInfo);
}
} }
} }

Loading…
Cancel
Save