jeyroik/extas-access

此包最新版本(4.0.2)没有可用的许可证信息。

Extas访问包

4.0.2 2023-06-26 20:19 UTC

This package is auto-updated.

Last update: 2024-09-26 23:10:51 UTC


README

tests codecov.io Latest Stable Version Total Downloads Dependents

描述

用于管理权限的包。

此包实现了“未明确允许即禁止”的模式。

安装

composer require jeyroik/extas-access:4.*

使用

为您的包安装访问权限

如果您的包(应用)预设有某种预置访问权限,则可以按以下方式组织其安装:

  • 向extas兼容的配置中添加访问权限
{
  "access": [
    {"object": "jeyroik", "section": "api", "subject": "app", "operation": "delete"}
  ]
}
  • 运行实体安装 /vendor/bin/extas i

创建访问权限

use \extas\interfaces\access\IAccess;
use \extas\components\access\Access;
use \extas\components\access\AccessService;

$access = new \extas\components\access\Access([
    IAccess::FIELD__OBJECT => 'player.name',
    IAccess::FIELD__SECTION => 'api',
    IAccess::FIELD__SUBJECT => 'player',
    IAccess::FIELD__OPERATION => 'create'
]);

$accessService = new AccessService();

if (!$accessService->isGranted($access)) {
    $accessService->grant($access);
}

检查访问权限

与创建几乎相同。

use \extas\interfaces\access\IAccess;
use \extas\components\access\Access;
use \extas\components\access\AccessService;

$access = new \extas\components\access\Access([
    IAccess::FIELD__OBJECT => 'player.name',
    IAccess::FIELD__SECTION => 'api',
    IAccess::FIELD__SUBJECT => 'player',
    IAccess::FIELD__OPERATION => 'create'
]);

$accessService = new AccessService();

if ($accessService->isGranted($access)) {
    echo 'Access granted';
}