对dektrium用户管理员索引操作没有任何权限

时间:2018-04-07 22:16:58

标签: yii2-advanced-app

我安装了dektrium用户,但是当覆盖AdminController.php并尝试触及admin/index时,我得到的是Forbidden(403)。将行为重写为:

'rules' => [
        [
           'allow' => true,
           'roles' => ['?'],
       ],
],

错误仍然相同。这是因为我还没有任何角色。什么可以导致这种行为?我的目标是index.phpdektrium\yii2-user模块中的那个)。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要遵循这些规则来覆盖dektrium-user

的控制器

<强> directory structure

如果您希望它进入前端,您可以更改以下内容,只需要更改起始文件夹

- backend
   - controllers
     - user
       - AdminController

user部分下module模块的配置应如下所示

'modules' => [
  ..............
    'user' => [
            'controllerMap' => [
                'admin' => 'backend\controllers\user\AdminController' ,
            ] ,

要使用新操作index覆盖控制器,您的最小代码应如下所示

<强> AdminController

<?php 

namespace backend\controllers\user;
use dektrium\user\controllers\AdminController as BaseAdmin;

class AdminController extends BaseAdmin {

    public function behaviors() {
        $behaviours = parent::behaviors ();
        $behaviours['access']['rules'][] = [
            'allow' => true ,
            'actions' => [ 'index' ] ,
            'roles' => [ '?' ]
        ];
        return $behaviours;
    }

    public function actionIndex(){
        return $this->render('index');
    }
}