主题
权限介绍
GET 请求是默认不经过权限控制,如果需要验证权限
- 需要在方法注释中加入
@CatchAuth
标识
- 需要在方法注释中加入
超级管理员不经过权限控制,后台默认安装的用户
数据权限
关于数据权限的概念,很简单,就是要标记数据的所有者。所以
如果你需要数据权限的时候,那么表结构需要默认的
creator_id
字段,用来标记数据的所有者。
一旦使用了数据权限,那么可以使用CatchRequest
,使用它可以无缝获取creator_id
,这是无感知的。 当你使用:
php
$request->param()
or
$request->post()
就可以轻松获取到。
使用
CatchAdmin
封装了可用 trait
来帮助开发者处理数据权限数据,引入 trait
php
use catchAdmin\permissions\model\DataRangScopeTrait
在模型
中使用 dataRange
方法,该方法接受一个 roles
对象数组,如果不传,则获取当前登录用户的角色组。
以用户列表为例
php
$this->dataRange()
->withoutField(['updated_at'], true)
->catchSearch()
->catchLeftJoin(Department::class, 'id', 'department_id', ['department_name'])
->order($this->aliasField('id'), 'desc')
->paginate();
TIP
dataRange 因为它不是Query
方法,所以它必须放在最前面。而又因为它返回Query
对象,所以它可以正常使用 Query 的方法。
数据权限并没有提供全局的方法,所以可以在你需要权限管理的地方引入它。