jstewmc/authorize-group

授权访问控制列表(ACL)组

v1.0.0 2016-08-13 22:19 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:35 UTC


README

授权一个 资源 上执行 操作

术语

此库使用以下术语

  • 用户 是一个人。
  • 资源 是一个东西,通常是模型名称。按照惯例,资源是复数形式且小写(例如,'users')。
  • 操作 是对资源执行的事情,通常是 CRUD 操作。按照惯例,操作是单数形式、现在时态且小写(例如,'create')。
  • 权限 是在 资源 上执行 操作 的权利(例如,'create' + 'users')。
  • 角色 是一组命名的权限。按照惯例,角色是单数形式且小写(例如,'administrator')。
  • 是具有 唯一 名称的用户集合。按照惯例,组是复数形式且小写(例如,'administrators')。

方法

此库的方法相当简单

  1. 用户 被分配到一个
  2. 被分配一个或多个 角色
  3. 角色 被授予一个或多个 权限
  4. 权限 允许在 资源 上执行 操作

虽然 用户 在数据库中被分配一个或多个 ,但 被分配一个 角色,而 角色 在配置数组中被分配 权限

示例

终于(哈哈)

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');

这就是全部了!

许可证

MIT

作者

Jack Clayton

版本

1.0.0,2016年8月16日

  • 主要版本
  • 修复 composer.json
  • 清理一些注释

0.1.0,2016年8月3日

  • 首次发布