项目作者: teodoroleckie

项目描述 :
⚡ Tleckie\Acl component provides a lightweight and flexible access control list (ACL) implementation for privileges management.
高级语言: PHP
项目地址: git://github.com/teodoroleckie/acl.git
创建时间: 2021-04-30T13:42:44Z
项目社区:https://github.com/teodoroleckie/acl

开源协议:MIT License

下载


Tleckie\Acl access control list (ACL)

Tleckie\Acl component provides a lightweight and flexible access control list (ACL) implementation for privileges management.
In general, an application may utilize such ACL‘s to control access to certain protected objects by other requesting objects.

Latest Version on Packagist
Scrutinizer Code Quality
Code Intelligence Status
Build Status

Installation

You can install the package via composer:

  1. composer require tleckie/acl

Usage

  1. <?php
  2. include_once "vendor/autoload.php";
  3. $acl = new Acl();
  4. $acl->addRole('USER-0');
  5. $acl->addRole('USER-1', ['USER-0']); // (USER-0) parent role.
  6. $acl->addRole('USER-2', ['USER-1']); // (USER-1) parent role.
  7. $acl->addResource('RESOURCE-0');
  8. $acl->addResource('RESOURCE-1', ['RESOURCE-0']); // (RESOURCE-0) parent resource.
  9. $acl->addResource('RESOURCE-2', ['RESOURCE-1']); // (RESOURCE-1) parent resource.
  10. $acl->addResource('RESOURCE-3', ['RESOURCE-2']); // (RESOURCE-2) parent resource.
  11. $acl->allow(['USER-0'], ['RESOURCE-0']);
  12. $acl->deny(['USER-1'], ['RESOURCE-3'],['view','edit','list']);
  13. $acl->isAllowed('USER-0','RESOURCE-2'); // true
  14. $acl->isAllowed('USER-1','RESOURCE-3'); // true
  15. $acl->isAllowed('USER-1','RESOURCE-3', 'view'); // false
  16. $acl->isAllowed('USER-2','RESOURCE-3'); // true
  17. $acl->isAllowed('USER-2','RESOURCE-3', 'view'); // false