matijabelec/acl-php

访问控制列表

0.2.0 2023-12-31 11:44 UTC

This package is auto-updated.

Last update: 2024-09-16 17:35:27 UTC


README

Packagist

自定义带有角色层次结构的访问控制列表(任何角色最多只能有一个父角色)。角色层次结构用于自动将父角色允许的操作继承到所选角色。操作只是描述某些操作的字符串。角色基本上是表示用户类型的字符串(但不仅限于)。

示例

首先,创建一个 MatijaBelec\Acl\Acl 类的对象。

    use MatijaBelec\Acl\Acl;
    $acl = new Acl();

应该创建角色层次结构。可以使用以下代码创建

    // create role hierarchy
    $acl->addRole('guest');
    $acl->addRole('user', 'guest');
    $acl->addRole('administrator', 'user');

在创建角色层次结构之后,让我们向角色添加一些操作

    // create actions tree
    $acl->allow('guest', 'user.canUpdate');
    $acl->allow('guest', 'user.canDelete');
    $acl->allow('user', 'user.canCreate');
    $acl->deny('user', 'user.canDelete');
    $acl->allow('administrator', ['user.canRead', 'user.canUpdate']);
    $acl->allow('administrator', 'user.canDelete');

要检查某个角色是否有允许的操作,可以使用以下代码

    // check actions on user
    $adminIsAllowedToGetUserDetails = $acl->isAllowed('administrator', 'user.canRead');
    $userIsAllowedToCreateNewUser = $acl->isAllowed('user', 'user.canCreate');

许可证

MIT (Matija Belec 2017)