From ae1e8c30f76642ccabbb92aed95eb97fe11bca1a Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 4 Dec 2023 12:02:53 +0800 Subject: [PATCH] Support nested permission --- .../PermissionManagementModal.razor | 2 +- .../PermissionManagementModal.razor.cs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor index 1f804c3c09..a0cd8335c6 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor @@ -62,7 +62,7 @@ @foreach (var permission in group.Permissions) { - + _permissionDepths = new Dictionary(); public PermissionManagementModal() { @@ -113,6 +115,11 @@ public partial class PermissionManagementModal _selectedTabName = GetNormalizedGroupName(_groups.First().Name); + foreach (var group in _groups) + { + SetPermissionDepths(group.Permissions, null, 0); + } + await InvokeAsync(_modal.Show); } catch (Exception ex) @@ -164,6 +171,18 @@ public partial class PermissionManagementModal return "PermissionGroup_" + name.Replace(".", "_"); } + protected virtual void SetPermissionDepths(List permissions, string currentParent, int currentDepth) + { + foreach (var item in permissions) + { + if (item.ParentName == currentParent) + { + _permissionDepths[item.Name] = currentDepth; + SetPermissionDepths(permissions, item.Name, currentDepth + 1); + } + } + } + protected virtual void GroupGrantAllChanged(bool value, PermissionGroupDto permissionGroup) { foreach (var permission in permissionGroup.Permissions)