cusodede / yii2-permissions
Permissions support module for Yii2
Requires
- php: >=8.0
- cusodede/yii2-default-controller: ^1.0.15
- cusodede/yii2-multi-select-widget: dev-master
- kartik-v/yii2-editable: ^1.8.0
- kartik-v/yii2-widget-depdrop: @dev
- kartik-v/yii2-widget-select2: ^2.2.3
- pozitronik/yii2-badgewidget: ^2.0.0
- pozitronik/yii2-grid-helper-asset: ^1.0.0
- pozitronik/yii2-helpers: ^1.1.2
- pozitronik/yii2-relations: ^1.0.0
- pozitronik/yii2-traits: ^1.0.0
- yiisoft/yii2-bootstrap4: ~2.0.10
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- codeception/module-cli: dev-master
- codeception/module-db: ^1.1
- codeception/module-filesystem: ^1.0
- codeception/module-phpbrowser: ^1.0.0
- codeception/module-rest: ^1.3.1
- codeception/module-yii2: ^1.1
- phpunit/phpunit: ^9.5
- vlucas/phpdotenv: ^5.4.1
- yiisoft/yii2: dev-master
- yiisoft/yii2-gii: dev-master
- dev-master
- 1.2.9.1
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6.1
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0.1
- 1.2.0
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.16.1
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-issue_72
- dev-issue23
- dev-issue20
- dev-russian_permission_names
- dev-return_value_fix
This package is auto-updated.
Last update: 2024-10-17 09:19:06 UTC
README
Управление пользовательскими разрешениями для Yii2
Установка
Выполните
php composer.phar require cusodede/yii2-permissions "^1.0.0"
или добавьте
"cusodede/yii2-permissions": "^1.0.0"
в секцию require
.
Миграции
Модуль хранит данные в таблицах, которые будут созданы командой
php yii migrate/up --migrationPath=@vendor/cusodede/yii2-permissions/migrations
список названий таблиц, создаваемых миграцией, можно посмотреть в
файле migrations/m000000_000000_sys_permissions.php
. Само собой, эту миграцию нужно выполнять только для
новых проектов, для текущих, если эти таблицы были созданы ранее, миграцию применять не нужно.
Конфиги
Вот вам пример конфига по умолчанию с описаниями параметров:
return [ // ... 'modules' => [ 'permissions' => [ 'class' => cusodede\permissions\PermissionsModule::class, 'params' => [ 'cache' => null, /* Собственный компонент кеширования, который будет использоваться классом, null для кеша Yii. */ 'viewPath' => [ 'permissions' => '@vendor/cusodede/yii2-permissions/src/views/permissions', /* Путь к кастомным шаблонам для управления доступами */ 'permissions-collections' => '@vendor/cusodede/yii2-permissions/src/views/permissions-collections' /* Путь к кастомным шаблонам для управления коллекциями доступов */ ], 'userIdentityClass' => Yii::$app->user->identityClass, /* Имя класса (либо замыкание, это имя возвращающее), определяющего identity пользователя. */ 'userCurrentIdentity' => Yii::$app->user->identity, /* Экземпляр класса, идентифицирующий сущность текущего пользователя */ 'controllerDirs' => [, /* Перечисление каталогов контроллеров, которые а) должны появиться в соответствующих настройках доступов; б) см. issue #1 Формат: 'путь_к_каталогу' => 'модуль_контроллера. Примеры ниже. '*/ /* * '@app/controllers' => null, # для контроллеров, загружаемых приложением, модуль не указывается * '@app/modules/api/controllers' => 'api', # для каталога с контроллерами модуля указываем id модуля * '@vendor/cusodede/yii2-permissions/src/controllers' => '@permissions', # если id модуля указан через @, то модуль не будет загружаться при инициализации контроллеров (для получения списка действий) */ ], 'ignorePaths' => [/* Игнорируемые пути. Поддерживаются файловые маски, например: */ '@app/controllers/ignored_dir/*',//ignore by directory path '@app/controllers/IgnoredController.php',//ignore by file path ], 'basicActionInput' => false,/* true: включение простого поля ввода имени действия в редакторе привилегий, false: включить выпадающий список действий выбранного контроллера*/ 'enablePathWarnFlag' => true, /*false: отключает проверку и вывод флага Permissions::WARN_NO_PATH, требующую инстанцирования контроллеров */ 'grantAll' => [1],/* id пользователей, которые будут получать все привилегии */ 'grant' => [/* перечисление прямых назначений привилегий в формате user_id => [список получаемых привилегий]. Пример ниже. */ /* * 1 => ['login_as_another_user', 'some_other_permission'] */ ], 'permissions' => [/* Список именованных привилегий, создаваемых командой init-config-permissions. Примеры ниже. Привилегии контроллер-экшен-etc в этой конфигурации не поддерживаются. */ /* * 'system' => [ * 'comment' => 'Разрешение на доступ к системным параметрам', * ], * 'login_as_another_user' => [ * 'comment' => 'Разрешение авторизоваться под другим пользователем', * ] */ ] ] ] ] // ... ]
Команды модуля
TBD
Использование (модели, трейты, etc)
TBD
Запуск локальных тестов
Скопируйте tests/.env.example
в tests/.env
, и измените конфигурацию соответственно вашему локальному окружению. Затем выполните
команду php vendor/bin/codecept run
.