一、背景

        今天在研究若依框架的时候,最开始是在登录了admin这个账号【系统自带的】新建了一个模块,要求所有的账号都可以查看,然后想到需要去给用户分配权限和角色,才能访问到自己新建的模块,于是我就去看admin是怎么分配的,不看不要紧,看了直接懵逼了,他在数据库中,没有对admin这个账号分配的数据

1、这是分配角色: 

2、

分配菜单里面没有对admin这个进行分配,那么页面上的菜单是怎么显示的呢,那我就猜测应该是在代码里面进行控制的 

二、解答

        1、果然,通过debug,首先让请求进入到后端,然后第一步就是获取当前用户信息,走到这一句代码

 2、然后继续深入

 3、再打开这个方法

 总结:这个就相当于是把数据库的那个id在代码里面写死了,然后判断如果用户id是1的话,就不进行数据和权限相关的判断,直接返回所有的菜单,这个也要求咱们在数据库中不要去动这个超级管理员的id,如果改了,也需要修改isAdmin的逻辑;

三、扩展

        当我们需要添加模块和分配角色的时候,还是老老实实的一个一个进行分配吧,所以我选择更改代码里面的逻辑

Logo

快速构建 Web 应用程序

更多推荐