该篇博文针对学习若依权限相关时的一些设置和问题的记录。
理想化结果
1、对于普通的用户来说,登录后只能看见自己录入的数据,并且无法更改部分数据。
2、对于审核人员来说,登录后可以看见审核部门下用户提交的数据,可以更改审核状态等信息。
创建角色
登录若依系统->系统管理->角色管理->新增
这里用同样的方法创建审核人员
数据权限分配
具体操作
点击你要设置的角色的对应“更多操作”按钮->点击数据权限
不同权限说明
1、仅本人数据权限,说明自己看自己的。一般情况下这种最底层的操作人员;
2、部门经理,则只能看本部门人员的数据;
3、管理人员,那么可以看到本部门及以下的数据;
这里可以根据需求选择对应的权限,我这里对于普通用户选择了仅本人数据权限,而审核人员选择了本部门人员数据 。
到这里为止,初步的设置就已经完成了,然后就是后端的设置。
数据库
如果要使用若依自带的权限管理系统,设计的表里面必须有dept_id和user_id的字段。
其他字段则是根据需求来自行设置。
添加数据
重要的设置
若依自动生成的代码中,在添加数据的时候,dept_id和user_id并不会自动填充,所以我们需要进入相应的Controller中,在新增保存的模块下添加相应的代码,实现在每次添加数据的时候,部门编号和用户编号都会自动填充。
可能出现的错误
我在第一次添加的时候,发现getDeptId()这个方法并不存在,然后这个应该是自带的方法,找到相应位置的BaseConreller
进入以后看看是不是没有你要用的方法,没有的话就自己加上
加上以后就有对应方法了。
数据隔离
Mapper
找到对应的Mapper页面,进入后找到selectList部分,在你的表后面加一个别名(若依生成的都是没有别名了,为了方便我们可以自己手动添加一个别名)
然后再末尾加上
${params.dataScope}
impl
在service下的impl包中找到你对应的需要设置的进入,找到查询列表相关的模块,在顶部添加
@DataScope(deptAlias = "t" , userAlias = "t")这里的t就是你之前设置的别名,你设置了什么就写什么
创建用户
系统管理->用户管理->新增 创建新用户
验证权限分配是否成功
登录你创建的用户账号。
普通用户
普通用户登录后只能看见自己添加的数据
审核人员
审核人员则能看见本部门所有的数据。
成功实现了权限配置和数据隔离!