jeyroik / extas-access
There is no license information available for the latest version (4.0.2) of this package.
Extas access package
4.0.2
2023-06-26 20:19 UTC
Requires
Requires (Dev)
README
Описание
Пакет для управления правами доступа.
Пакет реализует модель "всё, что не разрешено, запрещено".
Установка
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'; }