Skip to content

Repository files navigation

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';
}

About

Extas access package

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages