Skip to content

数据权限管理

介绍

数据权限功能主要用于企业级应用的精细化权限控制,默认不启用。数据权限与用户角色紧密关联,支持多种权限控制策略,如图 cathadmin 专业版数据权限介绍 角色权限支持以下数据访问控制类型

  • 全部数据权限
  • 自定数据权限
  • 部门数据权限
  • 部门及以下数据权限
  • 仅本人数据权限

约定

使用数据权限功能需要在数据表中设置用户标识字段,用于权限过滤。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();