2011-02-18 50 views
1

當用戶登錄並嘗試訪問他未授權查看的特定操作時,用戶被重定向到「/」(偶數在某些情況下你可以得到一個循環行爲)。 我已經尋找解決這個問題的方法,但我沒有找到任何東西。將用戶重定向到cakephp中的「你沒有權限」錯誤頁面

我在app_controller.php中寫了一些行來將登錄用戶重定向到一個錯誤頁面(「你沒有權限訪問...」),但我不確定是否搞亂了代碼。

你能告訴我嗎?謝謝。

在app_controller.php:

var $components = array('Auth'); 

function beforeFilter() { 
    $allowedActions = array_map('strtolower', $this->Auth->allowedActions); 
    if (!($this->Auth->allowedActions == array('*') || in_array($this->action, $allowedActions))) { 
     $_SERVER['HTTP_REFERER'] = Router::url(array('controller' => 'page', 'action' => 'error')); 
    } 

} 

回答

1

你可以嘗試在* app_controller.php *與echo $session->flash('auth');default.thtml中視圖結合使用

$this->Auth->loginError = "LOGIN ERROR"; 
$this->Auth->authError = "AUTH ERROR"; 

另一種方法是使用驗證組件的isAuthorized方法和重定向取決於其結果。

+0

我實際上使用loginError和authError,但我不只是需要顯示一條消息,我需要用戶將被重定向,如果他沒有被授權。 另一方面,我不知道isAuthorized方法,它很好地取代我的$ allowedActions相關的代碼。 – Min 2011-02-21 08:28:46

相關問題