限时 5折! 详情
无限分类如何控制权限 ?
6 211 2016-07-15

比如我有一个文章分类电脑-----联想-----苹果手机-----三星-----诺基亚我想指定上面的权限给用户, 比如a有联想,三星的权限, b 有联想,苹果的权限..........在这个RBAC教程中该怎么实现呢 ?

  • 6 个回答
  • 首先,yii2的权限是针对具体路由进行控制的。
    如果同一路由可以给不同的用户访问,可以增加规则进行控制。回到你的问题,按照你的意思我理解为不同用户可以查看不同分类的文章,有些分类的文章A可以看,有些分类的文章只有B可以看,A看不了?如果是我上面所理解的意思,其实质就是分类绑定用户即可,比如说我可以把分类【联想】绑定到用户AB身上,如此一来AB就有可以查看【联想】的权限了。这个权限怎么给呢?可以参考规则一文进行自定义实现。

  • 仔细看了上文提到的规则一文 , 实现起来还是有困难, 请问文章部分的表结构和代码哪里有参考吗?

  • 文章部分的表结构和代码,不明白你说的是什么表结构?

  •  public function execute($user, $item, $params) 
     { 
        $id = isset($params["id"]) ? $params["id"] : null; 
        if (!$id) { 
            return false; 
        } 
        $model = Article::findOne($id); 
        if (!$model) { 
            return false; 
        } 
        $username = Yii::$app->user->identity->username; 
        $role = Yii::$app->user->identity->role; 
        if ($role == User::ROLE_ADMIN || $username == $model->operate) { 
            return true; 
        } 
        return false; 
     }
    
     上面这段代码中有几句看不懂 
    
     $username = Yii::$app->user->identity->username; 
     $role = Yii::$app->user->identity->role; 
     if ($role == User::ROLE_ADMIN || $username == $model->operate) { 
        return true; 
     }
     User::ROLE_ADMIN ,$model->operate这些是什么意思,需要自己定义吗?

  • 这个是我自己举的例子,就类似自己定义的规则,满足规则就return true而已,重点在对rbac规则的理解,这个不重要

  • 仔细试了几次成功了,感谢解答!

登录 去赚佣金