谁一开始就是大神?

请问,如何使用AccessControl优雅、简洁的进行权限控制呢?[2.0]

大家好

请问如下的需求应该如何使用AccessControl 实现呢?
controller中有三个方法。

  1. hello
  2. name
  3. delete

用户有2个

  1. admin [rbac中分配了3个方法]
  2. user [rbac中 只有 hello]

需求:

  1. 所有未登录用户不能访问任何方法
  2. 登录用户中 根据rbac的授权 来访问。

不知道如何实现呢?

我现在使用
beforeaction 来判断rbac的权限,但是 使用了 beforeaction 之后 我设置的VerbFilter 对 delete方法的post过滤就失效了。 注释beforeaction后 是正常的。

这是我现在的 behaviors配置 但是无法实现 2个已登录用户的 权限区别。

public function behaviors()
    {
        return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['post'],
                ],
            ],
            'access' => [
                'class' => \yii\filters\AccessControl::className(),
                //'only' => ['hello',],
                'rules' => [
                    [
                        'allow' => false,
                        'roles' => ['?'],
                    ],
                ],
            ],
        ];
    }

手册中 AccessControl类 有方法beforeAction 说明是 在所有的过滤之后 在执行之前的最后一个判断的时间了,我感觉比较适合我现在的情况,但是水平太菜,不知道如何去配置AccessControl类的beforeAction 。

请问该如何使用AccessControl 简洁优雅的实现我的需求呢?

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 请问,如何使用AccessControl优雅、简洁的进行权限控制呢?[2.0]

评论 抢沙发

登录

找回密码

注册