好的,所以我按照以下方式設置了我的網站。將未經授權的cakePHP用戶重定向到引用頁面
索引重定向到登錄頁面,因爲整個站點僅用於登錄用戶。當用戶嘗試查看他們無權訪問的頁面時,他們被轉儲到登錄頁面,並顯示「您無權訪問該位置」消息。
我想改變這個,所以如果登錄用戶試圖訪問一個未經身份驗證的頁面,他們會被重定向回引用頁面。
在我個人的控制器中,我有一個isAuthorised方法,用於檢查用戶角色並允許或禁止訪問。
class AppController extends Controller {
public $theme = 'Default';
public function beforeRender(){
$this->set('referer',$this->referer());
$this->set('userData', $this->Auth->user());
}
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'users',
'action' => 'login'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'login',
'home'
),
'authorize' => array('Controller')
)
);
public function isAuthorized($user) {
// Admin can access every action
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
// Default deny
return false;
}
}
翻翻我已經找到unauthorizedRedirect,並認爲這可能是能夠做到這一點的文檔,但我還沒有找到一種方法來實現它。我已經嘗試了幾件事但尚未找到任何可以正常工作的東西。
重定向回引薦已經是默認的行爲,如果一個用戶authenthenticated試圖訪問一個網頁,他沒有權限訪問。你的CakPHP版本是什麼? – ADmad 2014-09-11 15:11:01
啊,是的,我在2.5。所以我的登錄重定向強制使用登錄頁面,而不是回到引用者? – 2014-09-11 16:50:33
只有當它找不到引用者時,它纔會重定向到「loginRedirect」中設置的URL。 – ADmad 2014-09-11 19:26:38