yii2项目实战-yii2-admin组件配置及使用
前面我们花了5个课时,讲解了从rbac数据表的分析到权限管理功能的实现!在以后的管理平台开发中,不管是不是用yii框架,我觉得权限管理模块的开发工作对你来说已经不是什么难事了!有些人要较劲了,yii实战项目开发,权限管理的功能要我们手动去实现,可笑至极呀!你错了!如果仅仅会使用框架,这又跟生搬硬套有什么区别!对于刚开始上路的新人,如果我们上来就套组件,一课时就完成了权限管理的配置,开发速度是提升了不少。但是,提升我们自身de技术能力,毫无卵用......好好的真金白银我岂不是没让你花在刀刃上?
早在几个月前,我们曾经就以迅雷不及掩耳之势整合了yii2-admin组件,但是到头来,却发现很多同学云里雾里,完全不懂得其界面化如何操作,随之我又专门提供了一篇基本的操作流程的讲解!但是还是有同学转不过圈来,究其原因,就是我们前面5个课时的精髓所在!
今天,我们就来看看这个第三方组件是如何使用的。
安装
composer require mdmsoft/yii2-admin "~2.0"
配置
安装好了之后,我们打开 backend\config\main.php,配置如下
return [ //...... 'modules' => [ 'admin' => [ 'class' => 'mdm\admin\Module', ], //...... ], 'aliases' => [ '@mdm/admin' => '@vendor/mdmsoft/yii2-admin', ], 'components' => [ //...... 'authManager' => [ 'class' => 'yii\rbac\DbManager', 'defaultRoles' => ['guest'], ], //...... ], 'as access' => [ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ //这里是允许访问的action,不受权限控制 //controller/action ] ], //...... ];
细心的同学发现了,这里的配置其实跟我们在通过行为,解决rbac的分配问题一文中讲解的差不多嘛!
配置好了之后,刷新下首页我们发现直接抛出了Forbidden (#403)了,这很显然是告诉我们没权限访问了!即yii2-admin组件我们已经配置ok了。
奇怪,为什么就直接抛出了403,提示我们没权限访问了呢?
我们回过头来看下配置,就很容易看出来,他其实是通过行为类 mdm\admin\components\AccessControl 进行的控制,这跟我们先前讲到的backend\components\AccessControl 何其相像!
如果你看了 mdm\admin\components\AccessControl 的源码你会发现,咦?这源码好像在哪里似曾相识!没错,其实我们在通过行为,解决rbac的分配问题一文中已经带大家实现过了一部分源码,现在想想,so easy。
好了,我们继续本节内容。
现在我们“遭受”权限控制,步步403,步步Forbidden,没法进行了!
回到100个控制器的问题,假如说我们通过配置行为,一股脑的控制了所有的控制器,万一有那么个别的控制器我不想受到rbac的控制,怎么办?
我们是不是得想办法,通过配置组件的属性,然后再beforeAction内部判断呢?没错,就是这么处理。
我们打开配置文件,发现 as access 配置项中有一个 allowActions 属性,这个字段就是用来对配置的操作忽略权限控制用的!
既然如此,为了能继续进行操作,我们先把所有的操作都忽略吧。配置allowActions的值等于 “*” 即可。后面我们给用户分配权限后再回来把下面的“*”去掉。
'as access' => [ 'class' => 'mdm\admin\components\AccessControl', 'allowActions' => [ //这里是允许访问的action //controller/action '*', ] ],
我们在开篇就讲到,yii2-admin 是一套封装好的界面化权限管理组件,按理说我们上面配置好了,就可以看到界面呀,界面呢?
界面在这里,下面大家可以通过浏览器访问如下地址:
/index.php?r=admin /index.php?r=admin/route /index.php?r=admin/permission /index.php?r=admin/role /index.php?r=admin/assignment
我们发现几乎每一个操作都是有数据的,这不难理解,因为这些数据是我们上面几个小节分配过的!下面我们就来看看这个界面化是怎么玩
还有44%的精彩内容,购买继续阅读
- 评论区