Php 授予对Yii2中模块的访问权限

Php 授予对Yii2中模块的访问权限,php,yii,Php,Yii,这可以通过RBAC方法(角色、权限)设置权限,以访问Yii2中的模块? 我想允许具有空间角色的用户访问我的一个模块。为此,我使用过滤器: 'modules' => [ 'roles' => [ 'class' => 'aj\admin\Module', 'as access' => [ 'class' => 'yii\filters\AccessControl', 'rules'

这可以通过RBAC方法(角色、权限)设置权限,以访问Yii2中的模块?

我想允许具有空间角色的用户访问我的一个模块。

为此,我使用过滤器:

'modules' => [
    'roles' => [
        'class' => 'aj\admin\Module',
        'as access' => [
            'class' => 'yii\filters\AccessControl',
            'rules' => [
                [
                    'allow' => true,
                    'roles' => ['Administrator'],
                ]
            ]
        ],
]

可以像在控制器中一样在模块中设置行为

<?php

namespace app\modules\admin;

use yii\filters\AccessControl;

class Admin extends \yii\base\Module
{
  public $controllerNamespace = 'app\modules\admin\controllers';
  public $defaultRoute = 'overview';

  public function behaviors()
  {
    return [
      'access' => [
      'class' => AccessControl::className(),
        'rules' => [
          [
            'allow' => true,
            'roles' => ['basic.superadmin', 'basic.admin'],
          ]
        ],
      ],
    ];
  }

  public function init()
  {
    parent::init();

    $this->layout = 'main';
  }
}

是的,这是可能的。您甚至可以在模块的
init
方法中限制访问,或者使用过滤器。@如果模块是通过composer安装的包的一部分,那么这是一种不好的做法,例如,“as access”代表什么?是框架公约还是什么?在哪里可以找到“as”的文档?@Araz Jafaripur我得到错误
“app\modules\wind\u panel\models\User”指的是app\modules\wind\u panel\models\User组件。需要yii\web\User。