IMI-Access-Control
Введение
IMI-Access-control — это компонент контроля доступа в рамках фреймворка IMI, который предоставляет базовые операции, но не предлагает конкретных API или интерфейсов управления.
Компонент поддерживает:
Composer
Проект можно установить с помощью Composer, следуя правилам автозагрузки PSR-4. В файле composer.json необходимо добавить следующую информацию:
{
"require": {
"imiphp/imi-access-control": "~1.0"
}
}
Затем выполнить команду composer update для установки.
Использование
В файле config/config.php проекта необходимо настроить следующее:
[
'components' => [
// Импортируем этот компонент
'AccessControl' => 'Imi\AC',
],
]
Операции
Создание операции:
use Imi\AC\AccessControl\Operation;
Operation::create('Название операции');
// Если код операции не указан или равен null, он будет совпадать с названием и не может быть повторен.
Operation::create('Название операции', 'Код операции');
// Можно указать родительский ID и индекс сортировки.
Operation::create('Название операции', 'Код операции', $parentId, $index, 'Описание');
Роли
Создание роли:
use Imi\AC\AccessControl\Role;
// Аналогично созданию операции, без дополнительных пояснений.
$role = Role::create('Название роли', 'Код роли', 'Описание');
Получение информации о роли:
// Поддерживаются два режима: по ID или по коду.
$role = new Role('ID роли');
$role = new Role('Код роли', 'code');
$roleInfo = $role->getRoleInfo(); // $roleInfo->id/code/name/description
Получение операций роли:
// Массив, элементы которого имеют тип \Imi\AC\Model\Operation.
$operations = $role->getOperations();
// Деревовидная структура, элементы которой имеют тип \Imi\AC\Model\Filter\OperationTreeItem, а $item->children — следующий уровень дерева, также имеющий тип \Imi\AC\Model\Filter\OperationTreeItem.
$operationTree = $role->getOperationTree();
Добавление и настройка операций:
$role->addOperations('код1', 'код2'); // Только добавление этих двух операций к существующим.
$role->setOperations('код1', 'код2'); // Установка операций роли только на эти две операции.
Удаление операций:
$role->removeOperations('код1', 'код2');
Проверка наличия операций у роли:
$result = $role->hasOperations('код1', 'код2');
Пользователи
Получение всех ролей пользователя:
use Imi\AC\AccessControl\Member;
$memberId = 1;
$member = new Member(1);
$roles = $member->getRoles();
Добавление и установка ролей:
$member->addRoles('код1', 'код2'); // Добавление этих двух ролей к существующим.
$member->setRoles('код1', 'код2'); // Настройка ролей пользователя только на эти две роли.
Удаление ролей:
$member->removeRoles('код1', 'код2');
Проверка наличия ролей у пользователя:
$result = $member->hasRoles('код1', 'код2');
Получение операций пользователя:
// Массив, элементы которого имеют тип \Imi\AC\Model\Operation.
$operations = $member->getOperations();
// Деревовидная структура, элементы которой имеют тип \Imi\AC\Model\Filter\OperationTreeItem, а $item->children — следующий уровень дерева, также имеющий тип \Imi\AC\Model\Filter\OperationTreeItem.
$operationTree = $member->getOperationTree();
Добавление и настройка операций:
$member->addOperations('код1', 'код2'); // Только добавление этих двух операций к существующим.
$member->setOperations('код1', 'код2'); // Настройка операций роли только на эти две операции.
Удаление операций:
$member->removeOperations('код1', 'код2');
Проверка наличия операций у пользователя:
$result = $member->hasOperations('код1', 'код2');
Техническая поддержка
QQ-группа: 17916227. Если у вас есть вопросы, вам помогут найти ответ и решить проблему.
Среда выполнения
Авторские права
«IMI-access-control» распространяется под лицензией MIT и доступен для бесплатного использования.
Пожертвования
Открытое ПО не предполагает коммерческой выгоды, любая сумма приветствуется, жизнь непроста, так что полагаемся на удачу…
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )