父/子权限分组

时间:2018-08-12 19:07:57

标签: permissions hierarchy aspnetboilerplate

根据Authorization上的文档,我可以使用子权限将所有与父母相关的权限分组:

  

“权限可以具有父级和子级权限。虽然这不会影响权限检查,但有助于在UI中对权限进行分组。”

作为示例,我想创建一个父级Permission“用户管理” 具有“创建”,“读取”,“更新”和“删除”子权限。

但是,在SetPermissions中设置了权限之后,层次结构并没有持久化,因此我无法从UI的角度了解权限之间的相互关系,因为返回的JSON都被扁平化了,{ {1}}表看起来也不维护它。

这是我的代码段(图1)

Fig1

这是我的AbpPermissions表(图2)

Fig2

我将对此表示任何建议或见解。

感谢和问候。

1 个答案:

答案 0 :(得分:0)

Permission已经具有ParentChildren属性的层次结构。

您可以使用以下方法检索定义的结构:

var rootPermissions = _permissionManager.GetAllPermissions()
    .Where(p => p.Parent == null)
    .ToList();

然后,您可以递归地迭代rootPermissions并检查它是否被授予:

var isAssigned = _permissionChecker.IsGranted(permission.Name);