Пакет для управления правами доступа.
Пакет реализует модель "всё, что не разрешено, запрещено".
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';
}