Checker - модуль проверок

Для проверок в системе создан специальный чекер, расположенный в ядре /src/Checker/Checker.php

Существует встроенная проверка актуальности сессии.

Также вы можете создавать собственные проверки.

Проверка актуальности сессии

В месте вашего кода (обычно это в начале запуска контроллера) разместить следующий код:

$this->checker->run([
    'auth' => '',
]);

// Проверка успешно пройдена
$this->response->setData($result);

return $this->response;

Также есть возможность напрямую проверить актуальность сессии:

use Lemurro\Api\Core\Session;

$result_session_check = (new Session($this->dic['config']['auth']))->check($this->dic['session_id']);
if (isset($result_session_check['errors'])) {
    // Сессия устарела
    $this->response->setData($checker_result);
} else {
    // Проверка успешно пройдена
    $this->response->setData($result);
}

return $this->response;

Проверка на роль “Администратор”

Чтобы проверить пользователя только на роль “Администратор” передайте такой массив проверок:

$checker_checks = [
    'role' => [],
];

Проверка ролей

В месте вашего кода (обычно это в начале запуска контроллера) разместить следующий код:

$this->checker->run([
    'auth' => '',
    'role' => [
        'page'   => 'example',
        'access' => 'create-update',
    ],
]);

// Проверка успешно пройдена
$this->response->setData($result);

return $this->response;

Данная проверка посмотрит может ли данный пользователь добавлять и изменять записи create-update в разделе example

В самом начале проверяется роль администратора, если пользователь администратор, тогда сразу возвращается ответ об успешной проверке

Если нужно просто проверить только на роль администратора, просто загляните в $this->dic['user']['admin'] хранит в себе boolean значение

Используем права на элементах страницы

Любой элемент на странице можно скрыть по умолчанию и показать в зависимости от прав доступа

Для этого укажите у элемента обязательные 2 класса

d-none js-role

Если не указывать больше никаких классов, тогда этот элемент будет виден только пользователям с правами Администратор

Далее укажите один или более классов собранных по шаблону

js-role__PAGE--ACCESS

где:

  • PAGE - код страницы
  • ACCESS - право доступа

Например:

js-role__example--read

Покажет этот элемент если у пользователя есть право доступа read для раздела example

Если вам без разницы какое право доступа есть у пользователя, можно использовать так:

js-role__example--any