tleckie/acl

PHP 角色访问控制列表(ACL)。ACL 组件提供了一种轻量级且灵活的访问控制列表(ACL)实现,用于权限管理。

1.0.3 2021-05-04 11:53 UTC

This package is auto-updated.

Last update: 2024-09-13 15:58:59 UTC


README

Tleckie\Acl 组件提供了一种轻量级且灵活的访问控制列表(ACL)实现,用于权限管理。通常,一个应用程序可能会利用此类 ACL 来控制其他请求对象对某些受保护对象的访问。

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

安装

您可以通过 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