若依框架中超级管理员的判断
今天在研究若依框架的时候,最开始是在登录了admin这个账号【系统自带的】新建了一个模块,要求所有的账号都可以查看,然后想到需要去给用户分配权限和角色,才能访问到自己新建的模块,于是我就去看admin是怎么分配的,不看不要紧,看了直接懵逼了,他在数据库中,没有对admin这个账号分配的数据。分配菜单里面没有对admin这个进行分配,那么页面上的菜单是怎么显示的呢,那我就猜测应该是在代码里面进行控制
·
一、背景
今天在研究若依框架的时候,最开始是在登录了admin这个账号【系统自带的】新建了一个模块,要求所有的账号都可以查看,然后想到需要去给用户分配权限和角色,才能访问到自己新建的模块,于是我就去看admin是怎么分配的,不看不要紧,看了直接懵逼了,他在数据库中,没有对admin这个账号分配的数据
1、这是分配角色:
2、
分配菜单里面没有对admin这个进行分配,那么页面上的菜单是怎么显示的呢,那我就猜测应该是在代码里面进行控制的
二、解答
1、果然,通过debug,首先让请求进入到后端,然后第一步就是获取当前用户信息,走到这一句代码
2、然后继续深入
3、再打开这个方法
总结:这个就相当于是把数据库的那个id在代码里面写死了,然后判断如果用户id是1的话,就不进行数据和权限相关的判断,直接返回所有的菜单,这个也要求咱们在数据库中不要去动这个超级管理员的id,如果改了,也需要修改isAdmin的逻辑;
三、扩展
当我们需要添加模块和分配角色的时候,还是老老实实的一个一个进行分配吧,所以我选择更改代码里面的逻辑
更多推荐
已为社区贡献1条内容
所有评论(0)