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)
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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'; }