权限管理系统中权限模块的实现
Posted 健康平安的活着
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限管理系统中权限模块的实现相关的知识,希望对你有一定的参考价值。
一 数据权限的概述
二 数据权限的操作步骤
2.1 思想
数据权限的控制是通过部门的菜单展示来实现的。
2.2 用到数据权限的地方
1.用户添加时候,选择部门的下拉框
2 部门管理的列表
3.角色管理,新增弹框页面,选择部门的树状菜单
2.3 部门管理中部门列表的数据权限
2.3.1 . controller层加载部门列表,加载全部部门信息
2.3.2. sevice层逻辑:将当前登录用户所拥有的部门id设置成查询部门列表的where的筛选条件
2.3.3.定义一个commonDataservice层:获取用户所具有的所有部门ids
1.在commonDataService类中的getCurrUserDataDeptIds()方法,获取当前登录用户的部门数据ids列表
2.如果当前登录用户id为超级管理员,则加载全部菜单信息,如下图所示:
3.如果当前登录用户id不为超级管理员,通过用户id,获取sys_role_dpet,sys_user_role这两张表进行关联(已拥有制定部门的权利且未占用),获取该登录用户所属的部门id
4.用户已经分配且已经拥有的部门(已拥有制定部门的权利且已占用),作用是选择了一个一级部门,那么一级部门所包含的二级部门,三级部门等也要赋值给用户,也就是说拥有的部门下面还有子部门,那么也具有该部门以及子部门的拥有权,使用递归算法全部遍历获得。如下图所示
5.将当前登录用户所拥有的部门id通过逗号进行拼接
2.4 用户新增弹框中的部门列表的数据权限
同样调用的是SysDepartController中的depart/list的方法,逻辑见2.3节
2.5 角色管理中新增弹框中的部门列表的数据权限
同样调用的是SysDepartController中的depart/list的方法,逻辑见2.3节
2.6 操作案例
例如用户debug用户的角色为操作权限角色,分配部门为开发一部下面的测试部门
2.使用超级管理员,给操作权限角色分配数据权限
3.使用debug用户登录查询
以上是关于权限管理系统中权限模块的实现的主要内容,如果未能解决你的问题,请参考以下文章
nacos源码之Auth(权限)模块-2(权限管理与权限配置)
基于SSM+Shiro+Bootstrap实现用户权限管理系统