1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/imiphp-imi-access-control

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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. Если у вас есть вопросы, вам помогут найти ответ и решить проблему.

Среда выполнения

  • PHP >= 7.1
  • Composer
  • Swoole >= 4.1.0

Авторские права

«IMI-access-control» распространяется под лицензией MIT и доступен для бесплатного использования.

Пожертвования

Открытое ПО не предполагает коммерческой выгоды, любая сумма приветствуется, жизнь непроста, так что полагаемся на удачу…

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Компонент контроля доступа в рамках imi-фреймворка не предоставляет конкретный API и интерфейс управления, а только базовый операционный компонент. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/imiphp-imi-access-control.git
git@api.gitlife.ru:oschina-mirror/imiphp-imi-access-control.git
oschina-mirror
imiphp-imi-access-control
imiphp-imi-access-control
master