权限管理逻辑

模块权限管理详解
本文详细介绍了模块权限管理的具体实现步骤,包括检查角色的存在性、模块的绑定与解绑过程、子模块的处理方式以及如何利用treePath进行批量查询等关键环节。
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, 形式的字符串

转载于:https://www.cnblogs.com/lijunp/p/7123946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值