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