权限管理扩展插件Yii2-admin的安装和配置

Yii2实践教程 2019年9月24日 2.6K

Yii2-admin是Yii2的rbac的一套管理工具,它可以和Yii2-adminlte完美搭配实现RBAC权限管理,省去了我们搭建基础后台时去写权限管理啦,只需要几个简单的配置就可以搭建一套权限管理。

Yii2-admin获取地址:https://github.com/mdmsoft/yii2-admin

一、安装方法

切换到网站的根目录执行:composer require mdmsoft/yii2-admin “~2.0” 然后耐心等待之后出现下方提示的绿色字体表明安装成功,并且给出了安装版本是yii2-admin(2.9),进入到 /vendor/mdmsoft/就可以看到yii2-admin目录。

- Installing mdmsoft/yii2-admin (2.9): Downloading (100%)
Writing lock file
Generating autoload files

二、配置

打开 backend/config/main.php文件

'modules' => [ //配置模块
'admin' => [
'class' => 'mdm\admin\Module'
]
],
"aliases" => [ //设置别名
"@mdm/admin" => "@vendor/mdmsoft/yii2-admin",
],
'as access' => [ //设置允许访问的action
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*', //site控制器下的所有action可以跳过yii2-admin的权限控制
'admin/*' //admin控制器下的所有action可以跳过yii2-admin的权限控制
]
],
components =>[
"authManager" => [ //权限
"class" => 'yii\rbac\DbManager', //将权限关系保存在数据库中
"defaultRoles" => ["guest"],
],
]

注意:authManager的组件有PhpManager和DbManager两种方式,PhpManager将权限关系保存到文件中,DbManager是将权限关系保存在数据库中。

到目前为止我们只要访问下方对应的链接就会看到权限管理的界面

http://localhost/index.php?r=admin
http://localhost/index.php?r=admin/route
http://localhost/index.php?r=admin/permission
http://localhost/index.php?r=admin/menu
http://localhost/index.php?r=admin/role
http://localhost/index.php?r=admin/assignment
http://localhost/index.php?r=admin/user

但是我们刚才说了,Yii2-admin是将权限关系保存到了数据库中,所以我们还需要创建对应的数据库才可以,如何创建数据库呢,请继续往下看。

[wppay]

三、创建数据库

命令切换到Yii2目录,执行下面的命令,将会自动创建需要的表(注意需要自行创建需要的数据库)

./yii migrate --migrationPath=@yii/rbac/migrations
./yii migrate --migrationPath=@mdm/admin/migrations

执行第一个命令时有可能出现报错如下:

Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager"
 component to use database before executing this migration.'

看到这个错误后,只需要在 /common/config/main.php中,加入如下代码即可(注意是common目录下)

'authManager' => [
'class' => 'yii\rbac\DbManager',
'itemTable' => 'auth_item',
'assignmentTable' => 'auth_assignment',
'itemChildTable' => 'auth_item_child',
'ruleTable'=>'auth_rule',
],

若是你自己喜欢也可以自定义表名,方法如下

authManager' => [
'class' =>'yii\rbac\DbManager',
//auth_item (role permission)
//auth_item_child (role->permission)
///auth_assignment (user->role)
//auth_rule (rule)
'itemTable'=> '{{%auth_item}}',//可以自定义表名,不用默认的
'itemChildTable' => '{{%auth_item_child}}',
'assignmentTable' => '{{%auth_assignment}}',
'ruleTable'=> '{{%auth_rule}}',
]

再次执行./yii migrate –migrationPath=@yii/rbac/migrations 即可在数据库中创建对应的表。
执行 ./yii migrate/down –migrationPath=@yii/rbac/migrations 会删掉此次建立的表。

四、在adminLTE中增加左侧菜单

打开/backend/views/layouts/left.php,在item的数组中加入如下代码

[
'label' => '权限管理',
'icon' => 'fa fa-circle-o',
'url' => 'javascript:;',
'items' => [
['label' => '路由管理', 'icon' => 'fa fa-circle-o', 'url' => '/admin/route'],
['label' => '权限管理', 'icon' => 'fa fa-circle-o', 'url' => '/admin/permission'],
['label' => '角色管理', 'icon' => 'fa fa-circle-o', 'url' => '/admin/role'],
['label' => '用户与角色', 'icon' => 'fa fa-circle-o', 'url' => '/admin/assignment'],
['label' => '菜单管理', 'icon' => 'fa fa-circle-o', 'url' => '/admin/menu'],
],
],

刷新页面看看后台是不是已经出现啦,点一下是不是都是404呢,不要着急,那是因为我们没有做rewrite,具体怎么设置请看下一节。

[/wppay]

未经允许不得转载:飞飞学院 » 权限管理扩展插件Yii2-admin的安装和配置

文章评论

您需要之后才可以评论
7点赞 0评论 收藏 QQ分享 微博分享