matijabelec / acl-php
访问控制列表
0.2.0
2023-12-31 11:44 UTC
Requires
- php: >=8.2
Requires (Dev)
- phpunit/phpunit: 10.*
This package is auto-updated.
Last update: 2024-09-16 17:35:27 UTC
README
自定义带有角色层次结构的访问控制列表(任何角色最多只能有一个父角色)。角色层次结构用于自动将父角色允许的操作继承到所选角色。操作只是描述某些操作的字符串。角色基本上是表示用户类型的字符串(但不仅限于)。
示例
首先,创建一个 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)