我一直在关注本教程,顺便说一句,这很棒,并且有一个问题。
http://www.larryullman.com/2010/01/07/custom-authentication-using-the-yii-framework/
我可以在我的应用程序代码中的任何位置访问这样的角色属性:
Yii::app()->user->role
但是,我真正想做的是在我的 UserController 中使用默认的控制器授权:
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('*'),
'users'=>array('@'),
// Fails
'roles'=>array(ModelConstantsRole::ADMIN),
// Also Fails
'expression'=>'(isset(Yii::app()->user->role) && (Yii::app()->user->role==ModelConstantsRole::ADMIN))',
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
看起来实际上验证 accessRules 中定义的规则的类实际上并不知道我分配给它的角色。CAccessControlFilter(对于那些不想搜索 40 分钟的人 XD)。
当我将 accessRules 方法与 Larry 的方法结合使用时,我有什么想法吗?
谢谢!