tleckie / acl
PHP 角色访问控制列表(ACL)。ACL 组件提供了一种轻量级且灵活的访问控制列表(ACL)实现,用于权限管理。
1.0.3
2021-05-04 11:53 UTC
Requires
- php: ^8
- tleckie/enum: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: v3.0.0-beta.2
- infection/infection: ^0.21.5
- phpunit/phpunit: ^9.5
README
Tleckie\Acl 组件提供了一种轻量级且灵活的访问控制列表(ACL)实现,用于权限管理。通常,一个应用程序可能会利用此类 ACL 来控制其他请求对象对某些受保护对象的访问。
安装
您可以通过 composer 安装此包
composer require tleckie/acl
用法
<?php include_once "vendor/autoload.php"; $acl = new Acl(); $acl->addRole('USER-0'); $acl->addRole('USER-1', ['USER-0']); // (USER-0) parent role. $acl->addRole('USER-2', ['USER-1']); // (USER-1) parent role. $acl->addResource('RESOURCE-0'); $acl->addResource('RESOURCE-1', ['RESOURCE-0']); // (RESOURCE-0) parent resource. $acl->addResource('RESOURCE-2', ['RESOURCE-1']); // (RESOURCE-1) parent resource. $acl->addResource('RESOURCE-3', ['RESOURCE-2']); // (RESOURCE-2) parent resource. $acl->allow(['USER-0'], ['RESOURCE-0']); $acl->deny(['USER-1'], ['RESOURCE-3'],['view','edit','list']); $acl->isAllowed('USER-0','RESOURCE-2'); // true $acl->isAllowed('USER-1','RESOURCE-3'); // true $acl->isAllowed('USER-1','RESOURCE-3', 'view'); // false $acl->isAllowed('USER-2','RESOURCE-3'); // true $acl->isAllowed('USER-2','RESOURCE-3', 'view'); // false