cawaphp/ acl
此包已被放弃,不再维护。未建议替代包。
Сáша Acl
dev-master
2018-02-19 12:18 UTC
Requires
- php: ~7.1
This package is not auto-updated.
Last update: 2023-12-23 15:25:08 UTC
README
简单的ACL,具有权限和过滤器
警告
请注意,此包仍在积极开发中。可能会发生一些破坏性更改。感谢您的理解。
特性
- 递归权限,格式简单:key1/key2/key3
- 可以在权限上应用过滤器,以便根据上下文限制某些权限
- 使用
addPermissions
合并多个角色的权限 - 简单的PHP数组,可以序列化到数据库中进行持久化存储
基本用法
class Role { use PermissionTrait; public function __construct() { $this->addPermissions([ new Permission('app', [ new Filter('app', [1]), new Permission('user', [ new Permission('group', [ new Permission('read'), new Permission('create'), new Permission('update'), new Permission('delete'), ]), ]) ]) ]); $this->addPermissions([ new Permission('app', [ new Filter('app', [2]), new Permission('user', [ new Permission('role', [ new Permission('read'), ]) ]) ]) ]); } } $role = new Role(); // Permissions var_dump($role->isAllowed('app/user/group/read'); // true var_dump($role->isAllowed('app/user/role/read'); // true var_dump($role->isAllowed('app/user/role/create'); // false var_dump($role->isAllowed('app/user/*'); // true var_dump($role->isAllowed('app/user/permision/*'); // false // Filters var_dump($role->isAllowed('app', ['app' => 1])); // true var_dump($role->isAllowed('app/user/role/read', ['app' => 1])); // true (filter are inherited) var_dump($role->isAllowed('app/user/role/read', ['app' => 2])); // false var_dump($role->isAllowed('app/user/role/read', ['unknown' => 1])); // true (no filter found mean all available)
关于
许可证
Cawa遵循GPL v3许可证 - 有关详细信息,请参阅LICENSE
文件。