2013-08-26 69 views
-1

我遵循http://www.larryullman.com/2010/01/04/simple-authentication-with-the-yii-framework/以使用數據庫創建登錄系統。
但登錄後,試圖訪問管理頁我得到錯誤403您無權在yii框架中執行此操作

Error 403 You are not authorized to perform this action

任何想法爲什麼如何解決這個問題?
看到我的訪問規則
public function accessRules() 
{ 
    return array(
    array('allow', // allow all users to perform 'index' and 'view' actions 
     'actions'=>array('index','view'), 
     'users'=>array(''), 
    ), 
    array('allow', // allow authenticated user to perform 'create' and 'update' actions 
     'actions'=>array(), 
     'users'=>array('@'), 
    ), 
    array('allow', // allow admin user to perform 'admin' and 'delete' actions 
     'actions'=>array('admin','delete','create','update'), // 
     'users'=>array('admin'), 
     'expression'=>'isset($user->role) && ($user->role==="admin")', 
    ), 
    array('deny', // deny all users 
     'users'=>array(''), 
     ), 
    ); 
}

+0

您需要在模型中添加權限(用戶權限)。檢查Yii指南。 –

+0

我有Model自帶的默認權限,是否需要更改? – Shamsher

+0

你能檢查你正在訪問的管理頁面有什麼嗎?您可能需要爲正在創建的用戶類型添加accessRules。請看我的答案。另外張貼(附加在你的問題的底部)你有什麼將大大幫助。 –

回答

0

確保您accessRules()已經允許管理員採取行動&(登錄),它是在上面的所有其他規則,或者至少只是把它放到最上面拒絕任何規則。不要誤解我的意思,它不一定總是在所有其他規則之上,但書中默認的最後一條規則是拒絕*,所以如果你把管理規則放在它的下面,你就不會有訪問操作管理員的機會。

public function accessRules() 
     { 
       return array(
         array('allow', // allow all users to perform 'index' and 'view' actions 
         'actions'=>array('index','view', 'checkout'), 
         'users'=>array('*'), 
        ) 
       ); 
     } 

2-如果你已經正確地更新您的accessRules(),您需要檢查,以確保您的帳戶,您正在使用的登錄,是誰有權訪問該管理頁面的用戶。此操作顯然在任務用戶管理中,並分配給角色所有者。因此用戶必須是您當前瀏覽的項目的所有者。從你的數據庫中選擇確定。

+0

請參閱我對訪問規則的編輯 – Shamsher

相關問題