权限管理逻辑
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, 形式的字符串
以上是关于权限管理逻辑的主要内容,如果未能解决你的问题,请参考以下文章