首页 > 其他 > 详细

yii2 rbac简介

时间:2017-01-08 09:06:47      阅读:276      评论:0      收藏:0      [点我收藏+]
  1. mysql添加表

    打开\vendor\yiisoft\yii2\rbac\migrations\schema-mysql.sql,复制粘贴里面的sql语句放在mysql里执行一遍,增加了4张表

    

    2.配置rbac

1
2
3
4
5
6
7
8
9
10
11
    ‘components‘ => [
        ......
        //添加这段代码
        ‘authManager‘ => [
            ‘class‘ => ‘yii\rbac\DbManager‘,
            ‘itemTable‘ => ‘auth_item‘,
            ‘assignmentTable‘ => ‘auth_assignment‘,
            ‘itemChildTable‘ => ‘auth_item_child‘,
        ],
        ......
    ]

    3.表的简介

    auth_item

    存放    1,角色(type=1)        2,权限&路由(type=2)

    技术分享

 

    auth_item_child

    存放    1,角色->权限    2,权限->路由    之间的对应关系

    技术分享

 

    auth_assignment

    存放    角色与用户id的对应关系

    技术分享

    

    controller中验证用户权限

1.

1
2
3
4
5
6
7
8
public function actionCreate()
{
   if(Yii::$app->authManager->checkAccess(Yii::$app->user->id,‘item/create‘)) //第二个参数可以填权限,也可以填具体的路由      
   {
       echo "ok!";        
   }
   ...
 }

 

   2. 或者添加一个beforeAction方法

1
2
3
4
5
6
7
8
public function beforeAction() {
       
        if(Yii::$app->user->can(Yii::$app->requestedRoute)){
            return true;
        }else{
            throw new \yii\web\UnauthorizedHttpException(‘你没有操作权限‘);
        }
    }

技术分享

yii2 rbac简介

原文:http://www.cnblogs.com/longzhankunlun/p/6261407.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!