【发布时间】:2013-11-29 21:02:54
【问题描述】:
使用 gii 为实体创建 CRUD,它在每个控制器中创建一个 accessRules() 函数,如下所示:
public function accessRules()
{
return array(
array('allow',
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow',
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
这基本上告诉 Yii 允许 认证 用户执行“创建”和“更新”操作,并允许 admin 用户执行“管理”和“删除”行动。
在我的应用程序中还有另一种类型的用户,即 HouseAdmin 用户,在简单的经过身份验证的用户和超级用户之间具有不同的角色。
在此处的帮助下,我创建了一个 isHouseAdmin() 函数,用于判断用户是否属于 HouseAdmin 类型。现在,我需要使用该信息使 accessRules() 与“houseAdmin”用户一起使用,因此我可以制定如下规则:
public function accessRules()
{
return array(
array('allow',
'actions'=>array('index','view'),
'users'=>array('@'),
),
array('allow',
'actions'=>array('create','update'),
'users'=>array('houseAdmin'),
),
array('allow',
'actions'=>array('admin','delete'),
'users'=>array('admin'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
我怎么能这样做? 那些 'admin' 和 '@' 是在哪里定义的,所以我可以添加我的 'houseAdmin'?
【问题讨论】:
标签: php yii yii-extensions