yii2项目实战-通过行为,解决rbac的分配问题
12102
0
0
首先我们感谢付费订阅的用户,那么有耐心的看我不厌其烦的讲解,本系列教程也一定不负您的众望!
今天我们就准备结束漫长的RBAC啦,当然,看完我们今天讲的内容,你应该能够独立的实现一套RBAC管理体系了!为什么这么说呢,因为即使我们后面引入一套第三方的rbac组件,还是有很多人不喜欢他的风格,想要定制呢!
好啦,我们言归正传,看看如何通过行为解决困扰我们几节课的矛盾吧。
等等,等等,有同学上来要问了,我们在基于角色的访问控制(rbac)分配案例文末抛出的100个控制器的问题,当时说要通过行为解决的,可是上节课讲的行为听是听懂了,但是还是没解决这个100个控制器的问题呀,不还是需要手动一个一个的去附加行为吗?
容我想想,还真是这么回事。不过,我上节课说行为还有其他的附加形式,不知道你私下有没有翻翻手册呢?
还不知道怎么处理的,我提个醒,通过配置去附加行为。在你的配置文件main.php中,components同级添加如下代码,注意位置千万不要写错了。
'as myBehavior2' => MyBehavior::className(),
然后自己去尝试下效果吧,我们继续讲本篇的重点。
目前我们的 BlogController 有5个操作,分别是index、view、create、update 和 delete,我们来看看如何判断用户是否有操作这几个action的权限!
打开 RbacController,我们先把这几个路由权限添加并分配给“博客管理”这个角色。(上上篇文章中我们已经把该角色分配给uid=1的用户了哦~)
<?php namespace backend\controllers; use Yii; use yii\web\Controller; class RbacController extends Controller { // 添加权限 public function actionInit2 () { $auth = Yii::$app->authManager; // 添加权限, 注意斜杠不要反了 $blogView = $auth->createPermission('/blog/view'); $auth->add($blogView); $blogCreate = $auth->createPermission('/blog/create'); $auth->add($blogCreate); $blogUpdate = $auth->createPermission('/blog/update'); $auth->add($blogUpdate); $blogDelete = $auth->createPermission('/blog/delete'); $auth->add($blogDelete); // 分配给我们已经添加过的"博客管理"权限 $blogManage = $auth->getRole('博客管理'); $auth->addChild($blogManage, $blogView); $auth->addChild($blogManage, $blogCreate); $auth->addChild($blogManage, $blogU
还有60%的精彩内容,购买继续阅读
- 评论区
共104条评论
登录
后发布评论