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

时间:2014-11-04 16:03:18

标签: php yii

这可以通过RBAC方法(角色,权限)设置权限来访问Yii2中的模块吗?
我想允许具有空间角色的用户访问我的某个模块。

2 个答案:

答案 0 :(得分:9)

我为此目的使用过滤器:

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

答案 1 :(得分:1)

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

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