2013-02-03 63 views
0

我在WebUsergetIsAdmin如何在Yii中設置'users'=> array('admin')?

public function getIsAdmin() { 
    $user = $this->loadUser(Yii::app()->user->id); 
    if ($user === null) { 
     return false; 
    } 
    return intval($user->user_level_id) == AccountModule::USER_LEVEL_ADMIN; 
} 

然而,我在我的控制規則的功能不能正常工作

array('allow', 
     'actions'=>array('index','create','upload'), 
     'users'=>array('admin'), 
), 

我在哪裏設置,使用戶是admin

回答

3

訪問控制篩選器中的users屬性僅檢查用戶名,即檢查是否爲Yii::app()->user->name=='admin'。在你的場景中,你可以使用expression屬性。只有在表達式評估爲true時纔會授予訪問權限。變量$user可用作表達式作爲Yii::app()->user的別名。所以你的條件將是

array('allow', 
     'actions'=>array('index','create','upload'), 
     'expression'=>'$user->getIsAdmin()', 
), 
相關問題