lawiet / yii2-rolemanager
基于访问菜单的RBAC
dev-master
2018-12-04 21:09 UTC
Requires
- kartik-v/yii2-builder: @dev
- kartik-v/yii2-icons: @dev
- kartik-v/yii2-widget-select2: @dev
- kartik-v/yii2-widgets: *
- yiisoft/yii2: ^2.0.8
- yiisoft/yii2-bootstrap: *
- yiisoft/yii2-jui: *
Requires (Dev)
Suggests
- yiisoft/yii2-bootstrap: Used when using layout 'left-menu', 'right-menu' or 'top-menu'
This package is auto-updated.
Last update: 2024-08-29 04:25:39 UTC
README
用于与Yii2一起使用角色管理器的组件
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require lawiet/yii2-rolemanager "dev-master"
或向您的 composer.json
文件的require部分添加
"minimum-stability": "dev",
"prefer-stable": true,
require: {
...
"lawiet/yii2-rolemanager": "@dev"
...
}
角色配置
在文件 web.php
<?php
....
'user' => [
'identityClass' => 'lawiet\rbac\models\User',
'enableAutoLogin' => true,
//'authTimeout' => 30,
],
....
'modules' => [
'rbac' => [
'class'=>'lawiet\rbac\Module',
'excludes'=>[
//'modules' => ['test'], //List id Modules to RBAC exclude
//'controllers' => ['test.default'], //List id controllers to RBAC exclude module.controller
//'actions' => ['test.default.index'], //List id action to RBAC exclude module.controller.action
],
'menu'=>[
'icon'=>true, // boolean show icon true or false. Default: true
],
],
],
...
?>
在每个文件 controllers/xxxController.php
中将 yii\web\Controller 替换为 lawiet\rbac\web\Controller
<?php
....
use lawiet\rbac\web\Controller;
class xxxController extends Controller {
...
?>
并移除方法 behaviors 或修改并添加方法 parent
<?php
....
class xxxController extends Controller {
....
public function behaviors()
{
return parent::behaviors();
}
...
?>
在布局中动态生成主要菜单,添加
<?php
....
use lawiet\rbac\web\Access;
....
NavBar::begin([
'brandLabel' => Yii::t('app', 'My Company'),
'brandUrl' => Yii::$app->homeUrl,
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
echo Nav::widget(Access::getPrincipalMenu());
NavBar::end();
...
?>
运行命令
php yii migrate --migrationPath=@lawiet/rbac/migrations --interactive=0