数据权限
介绍
在实际开发中,需要设置用户只能查看哪些部门的数据,这种情况一般称为数据权限。 例如对于销售,财务的数据,它们是非常敏感的,因此要求对数据权限进行控制, 对于基于集团性的应用系统而言,就更多需要控制好各自公司的数据了。 如设置只能看本公司、或者本部门的数据,对于特殊的领导,可能需要跨部门的数据, 因此程序不能硬编码那个领导该访问哪些数据,需要进行后台的权限和数据权限的控制。
全局设置
在 config/autoload/mineadmin.php
里全局设置是否开启数据权限
return [
// 是否启用数据权限
'data_scope_enabled' => true,
];
注意事项
超管(创始人)
超级管理员 superAdmin
默认为所有访问权限和数据权限,其角色同样如此。
数据表相关
若想使用数据权限,MineAdmin自带的数据表请忽略。 但自建的数据表都需要有 created_by
字段,且类型为bigint
使用方法
MineAdmin 通过 Builder
类的 macro
方法扩展出了一个方法 userDataScope()
。
不管你是用 查询构造器 方式还是使用 模型查询,都可以使用该方法
// 查询构造器使用
Db::table('user')->userDataScope()->get();
// 模型使用
User::query()->userDataScope()->get();
这样,查询出的数据会自动设置该用户所允许查看的数据了。
提示
如果使用系统封装好的curd,那么系统已经默认调用该方法了。