dmstr / yii2-active-record-permissions
_____
1.2.3
2024-01-25 13:09 UTC
Requires
- php: ^7.3 || ^8.0
- yiisoft/yii2: ^2.0.35
Requires (Dev)
- phan/phan: ^2.4
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-25 14:15:41 UTC
README
该包已从 https://github.com/dmstr/yii2-db 提取
安装
设置
通用用法
配置选项
在应用配置中
'params' => [
'ActiveRecordAccessTrait' => [
'enableRecursiveRoles' => true
],
],
注意:静态属性使用
enableRecursiveRoles
已弃用。
示例
特质
dmstr\activeRecordPermissions\ActiveRecordAccessTrait
选项 1
如何为你的活动记录模型配备访问控制
-
使用
db/migrations/m160609_090908_add_access_columns
中的更新迁移- 设置所有
$tableNames
以进行更新并运行迁移
- 设置所有
此迁移将可用的访问检查列添加到您的数据库表
'access_owner',
'access_read',
'access_update',
'access_delete',
'access_domain',
-
将
use \dmstr\activeRecordPermissions\ActiveRecordAccessTrait;
添加到您的活动记录模型 -
(更新您的 CRUD)
RBAC 权限
选择权限
access.availableDomains:any
设置默认值的权限
access.defaults.accessDomain:global
access.defaults.updateDelete:<ROLE>
如果您想自动设置,请在 Model::rules()
中添加默认值规则的规则
[
[
'access_update',
'access_delete',
],
'default',
'value' => self::getDefaultAccessUpdateDelete()
],
选项 2
只需在我们的 AR 模型中覆盖此方法,并将您拥有的/想要的访问字段设置为您拥有的/想要的字段名!
默认
public static function accessColumnAttributes()
{
return [
'owner' => 'access_owner',
'read' => 'access_read',
'update' => 'access_update',
'delete' => 'access_delete',
'domain' => 'access_domain',
];
}
自定义
public static function accessColumnAttributes()
{
return [
'owner' => 'user_id', // the column name with owner permissions
'read' => 'read_permission', // the column name with read permissions
'update' => false, // will do no access checks for update
'delete' => false, // will do no access checks for delete
'domain' => 'language', // the column name with the access domain permission
];
}
㊙️ 恭喜,您现在可以管理活动记录上的特定访问检查了!
💡 访问选项
-
所有访问选项
*
-
可分配的特定 RBAC 角色和权限
- 单或多个
*
Role1,Role2,Permission1,...
- 单或多个
-
限制对特定域/语言的访问
de
或en
-
Owner
获得对其他给定权限的所有访问- 每个活动记录都可以有一个确切的所有者权限,该权限高于
access_read
、access_update
、access_delete
- 每个活动记录都可以有一个确切的所有者权限,该权限高于
计划更新
- ActiveRecordAccessTrait
- 在 CRUD 中使用 select2 多选框进行输入(域、读取、更新、删除)
- 设置器:authItemArrayToString()
- 获取器:authItemStringToArray()
- 在 CRUD 中使用 select2 多选框进行输入(域、读取、更新、删除)
由 dmstr 构建