layxis / yii3-rbac-web
Yii RBAC web module for Yii Framework 3 applications.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/layxis/yii3-rbac-web
Requires
- php: ^8.0
- yiisoft/form-model: dev-master
- yiisoft/rbac: dev-master
- yiisoft/view: ^12.0
- yiisoft/yii-view-renderer: dev-master
Requires (Dev)
- nyholm/psr7: ^1.8
- phpunit/phpunit: ^11.0
- yiisoft/di: dev-master
- yiisoft/router: dev-master
- yiisoft/test-support: dev-master
Provides
This package is auto-updated.
Last update: 2026-02-03 09:36:57 UTC
README
A lightweight web module for managing RBAC (roles, permissions, assignments) in Yii Framework 3 applications.
Project layout (relevant):
src/Permission/— Actions and views for Permission managementsrc/Role/— Actions and views for Role managementsrc/Item/ItemForm.php— Base form model (fields:name,description,ruleName,type)config/route.php— Route definitionssrc/Rule/RuleCollectionProviderInterface.php— Optional interface for providing rule lists
Requirements
- PHP 8.0+
- Composer
Note: Many yiisoft/* packages here follow development branches (e.g. dev-master) or specific major versions. For production use, pin stable versions and test compatibility.
Installation
From the project root run:
composer install
If you use a local composer.phar and need a specific PHP binary, set your PATH or run:
set PATH="D:\\Program Files\\php-8.4.16-nts-Win32-vs17-x64;"%PATH% php ../composer.phar install
Usage
- Routes are defined in
config/route.phpwith name prefixesrole/,permission/,assignment/. - Views live in
src/Permission/views/andsrc/Role/views/. - Form models (e.g.
src/Permission/PermissionForm.php,src/Role/RoleForm.php) extendItemForm, which sets thetypeautomatically.
Common routes (see config/route.php):
permission/index— list permissionspermission/create— create permissionpermission/update/{name}— update permissionpermission/delete/{name}— delete permissionpermission/view/{name}— view permission
role/* routes are analogous.
Rule dropdown (ruleName)
The view templates use a select field for ruleName. To populate rule options, implement RuleCollectionProviderInterface (src/Rule/RuleCollectionProviderInterface.php) and inject the provider into Actions. Example flow:
- Action calls
$rules = $ruleProvider->getRules(); - Pass
$rulesto the view; the view rendersField::select($form, 'ruleName')using provided options.
Example RuleCollectionProvider implementation is included at src/Rule/RuleCollectionProvider.php and a DI example is available in config/services.php.
Views & CSRF
config/params.php enables CSRF injection for the view renderer (CsrfViewInjection), so views can use the injected $csrf token. The provided view templates use Html::form()->csrf($csrf) and include hidden _csrf inputs for POST forms.
Testing
Install dev dependencies and run tests:
composer test # or vendor/bin/phpunit
(Composer scripts includes a test entry.)
Developer notes
- Many
yiisoft/*dependencies are set to development branches incomposer.json. For production, prefer stable releases. - If you run into dependency conflicts, Composer suggests using
--with-all-dependencies (-W)or adjusting version constraints.
Contribution
PRs and issues are welcome. Please follow existing code style and include tests for new logic.
If you want, I can add an example Action injection snippet showing how to pass $rules to the view.