![](https://img.kancloud.cn/ca/d8/cad82fa5e213b7e3fede917947aaad07_1810x911.png)## 权限控制系统介绍
### 思维导图
![](https://img.kancloud.cn/db/f5/dbf56104a5f2f7347a5c4c9128959141_996x698.png)
#### 租户平台权限说明
添加的下级租户实际上就是顶级租户的一个子账号而已,操作数据的时候,同样使用的就是顶级租户的用户ID,唯一的区分:
子租户能管理的菜单是由顶级租户进行分配的;
子租户操作日志显示为子租户相关的信息
子租户登录的时候也会是自己的账号和密码
子租户没有独立的余额,账单等等数据
#### 附加子租户信息
![](https://img.kancloud.cn/b5/2e/b52eb655ac81eeacff1901ac1a904d4e_1571x1281.png)
#### 获取子租户信息方式
1 任何集成了基类控制器 BaseController.php的类都可以通过$this->user->sub_member来获取到当前登录子租户的相关用户信息
2 通过$this->user来获取当前登录子租户的顶级租户用户信息如果要获取顶级租户ID通过$this->user['id']
3 获取顶级租户信息
$Member = \app\manage\model\Member::getTop($member_id);
![](https://img.kancloud.cn/b7/db/b7db4e63081d22b8c7ec8d0e4fa7e11d_1644x1179.png)
#### 租户端添加子租户角色操作
1 一定要选择用户基础权限节点,不然好多基础操作不能进行
![](https://img.kancloud.cn/ca/d8/cad82fa5e213b7e3fede917947aaad07_1810x911.png)
#### 路由中间件和路由文件说明
1 路由文件比如要定义每个系统要用到的路由【为了安全和自由定制路由,框架已经强制开启了路由】
2 框架有多个中间件,Login.php为登录中间件,如果路由设置了走这个中间件,用户请求路由携带token就会把相应的用户信息自动挂载到$this->request->userInfo对象上,如果middleware(buwang\middleware\Login::class, true)第二个参数为true,则用户请求路由如果检测到token失效或者未登录,就会自动进行强制让用户登录才能访问,如果是AJAX请求就会返回401状态码,如果是模板渲染请求就会强制进行跳转到登录页
3 Auth.php中间件是用来对请求的路由惊醒权限控制判断的,所有的需要鉴权的路由只需要在路由文件里定义执行这个中间件就可以自动鉴权了
4 还有个signcheck.php中间件,将来用于前后端接口API请求参数验证合法性用的
5 ViewInit.php用来初始化模板相关信息的,一般开发者不用管
![](https://img.kancloud.cn/2a/81/2a81531b7069dce8f28c46723c45ccc8_1926x1134.png)
![](https://img.kancloud.cn/04/c1/04c1d3343f81167b20d298f3f441aa12_1448x822.png)