主题
数据权限管理
介绍
数据权限功能主要用于企业级应用的精细化权限控制,默认不启用。数据权限与用户角色紧密关联,支持多种权限控制策略,如图 角色权限支持以下数据访问控制类型
- 全部数据权限
- 自定数据权限
- 部门数据权限
- 部门及以下数据权限
- 仅本人数据权限
约定
使用数据权限功能需要在数据表中设置用户标识字段,用于权限过滤。CatchAdmin 专业版使用 creator_id
字段作为数据创建者标识
使用配置
- 在使用之前一定要确认你已经在角色上设置了数据权限范围
- 如果使用部门权限,那么用户就必须设置所属部门
完成以上两步,使用上就非常简单,但必须是权限模块
开启的情况,并且使用权限模块。因为数据权限是和角色强绑定的。
php
// 引入数据权限 Trait
// modules/Permissions/Models/Traits/DataRange.php
use Modules\Permissions\Models\Traits\DataRange;
// 在模型中使用数据权限功能
Class AnyModel extends CatchModel
{
use DataRange; // 自动应用数据权限过滤
}
使用 DataRange trait 后,模型查询会自动应用数据权限过滤规则。
如需手动控制权限范围,可以单独调用数据权限查询作用域
php
// 手动应用数据权限过滤
Model::select('*')->dataRange()->get();