权限管理逻辑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限管理逻辑相关的知识,希望对你有一定的参考价值。

1.检查选中模块所属的角色是存在的
 
2.绑定模块:
 
创建授权列表
1. 绑定本模块,加入授权列表中
2.父模块绑定
2.1 判断是否存在父级
如果存在父级 : 获取父模块信息, 判断父模块是否被授权,如果没有被授权加入授权列表。
如果是第二级之后, 存在多个父模块的情况, 拿到本模块的treePath,即父模块的id,判断父模块是否被授权,进行批量查询(in 关键字),如果没有被授权加入授权列表。
3.子模块绑定
3.1 如果不存在父级,则直接开始此模块。
建立子模块的treePath :
1. 如果该模块的treePath为空, 子模块treePath为该模块的id。
2. 如果该模块的treePath不为空, 子模块的treePath为 该模块的treePath+该模块的id。
根据建立的treePath进行批量查询是否存在子模块:
1. 如果不存在, 在t_permission中批量添加授权列表,结束绑定模块。
2. 如果存在, 根据上面所建立的treePath查询子级模块的信息。
对查询到的子模块判断是否已经授权, 如果没有授权, 加入授权列表中。
这里为了方便,提高效率,直接将所查询到的子模块全部解绑,
再往t_permission中批量添加授权列表,结束绑定模块。
 
3.解绑模块:
 
1.解绑本模块
2.解绑所属的子模块
建立子模块的treePath :
1. 如果该模块的treePath为空, 子模块treePath为该模块的id。
2. 如果该模块的treePath不为空, 子模块的treePath为 该模块的treePath+该模块的id。
根据建立的treePath进行批量查询是否存在子模块:
如果存在,根据上面所建立的treePath查询子级模块的信息。
对子模块判断是否存在
1.如果不存在, 结束解绑模块。
2.如果存在,将所有子模块解绑,结束解绑模块。
 
关于 treePath:
String 类型 ,根级 为 Null,之后的级别,一父级id组成的 ,1,2, 形式的字符串

以上是关于权限管理逻辑的主要内容,如果未能解决你的问题,请参考以下文章

权限管理逻辑

PG基础篇--逻辑结构管理(用户及权限管理)

权限管理逻辑

系统设计:基于角色的权限管理设计实现

Day512.用户与权限管理&逻辑架构 -mysql

通用权限管理设计