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

No permissions on dektrium user admin index action

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

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

错误还是一样。这样做是因为我仍然没有任何角色。什么会导致这种行为?我的目标是原点 index.phpdektrium\yii2-user 模块中的原点)。谢谢!

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

的控制器

directory structure

如果你想把它放到前端,你可以更改以下内容,只需要更改起始文件夹

- backend
   - controllers
     - user
       - AdminController

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

'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');
    }
}