jstewmc / authorize-group
授权访问控制列表(ACL)组
v1.0.0
2016-08-13 22:19 UTC
Requires
- php: ^7.0
Requires (Dev)
- jstewmc/test-case: ^1.0
This package is auto-updated.
Last update: 2024-08-29 04:03:35 UTC
README
授权一个 组 在 资源 上执行 操作。
术语
此库使用以下术语
- 用户 是一个人。
- 资源 是一个东西,通常是模型名称。按照惯例,资源是复数形式且小写(例如,
'users'
)。 - 操作 是对资源执行的事情,通常是 CRUD 操作。按照惯例,操作是单数形式、现在时态且小写(例如,
'create'
)。 - 权限 是在 资源 上执行 操作 的权利(例如,
'create'
+'users'
)。 - 角色 是一组命名的权限。按照惯例,角色是单数形式且小写(例如,
'administrator'
)。 - 组 是具有 唯一 名称的用户集合。按照惯例,组是复数形式且小写(例如,
'administrators'
)。
方法
此库的方法相当简单
- 用户 被分配到一个 组。
- 组 被分配一个或多个 角色。
- 角色 被授予一个或多个 权限。
- 权限 允许在 资源 上执行 操作。
虽然 用户 在数据库中被分配一个或多个 组,但 组 被分配一个 角色,而 角色 在配置数组中被分配 权限。
示例
终于(哈哈)
use Jstewmc\AuthorizeGroup; // grant permissions to roles $roles = [ // the "administrator" role... 'administrator' => [ // for the "users" resource... 'users' => [ // has the "create" action 'create' ] ] ]; // assign roles to groups $groups = [ // the "administrators" group... 'administrators' => [ // has the "administrator" role 'administrator' ] ]; // implement a group named "administrators" $group = new class implements Group { public function getName(): string { return 'administrators'; } } // create our authorization service $authorizer = new Authorize($groups, $roles); // is the group authorized to create users? (yes) $authorizer($group, 'create', 'users'); // is the group authorized to delete users? (no) $authorizer($group, 'delete', 'users');
这就是全部了!
许可证
作者
版本
1.0.0,2016年8月16日
- 主要版本
- 修复
composer.json
- 清理一些注释
0.1.0,2016年8月3日
- 首次发布