在我的蛋糕2.2的应用程序,我有以下beforeFilter()在我的应用程序控制器设置:CakePHP的 - 验证logoutRedirect不工作的管理员用户
public function beforeFilter() {
//Configure AuthComponent
// Admin
if($this->Auth->user('group_id') == '12') {
$this->Auth->allow('admin_index');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'index', 'admin' => TRUE);
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->set("group", "admin");
// Staff
}
if($this->Auth->user('group_id') == '13') {
$this->Auth->allow('admin_index');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'index', 'admin' => TRUE);
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->set("group", "staff");
所以基本上我想用户组的所有用户regardles是当会话过期时发送到/ users/login。这适用于用户,但任何管理员用户都会重定向到admin/users/login,并在用户控制器错误中显示Missing方法(因为这不是管理员方法)。出于某种原因,'admin'=> FALSE无法正常工作。
所以,我怎样才能得到所有用户,无论用户类型来重定向到/用户NON管理方法/ URL /登录
// Users
}
if($this->Auth->user('group_id') == '14') {
$this->Auth->allow(array('controller' => 'pages', 'action' => 'index', 'admin' => FALSE));
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'index', 'admin' => FALSE);
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
$this->set("group", "user");
}
// General logout redirect (including expired session redirect)
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => FALSE);
}
检查你可以在你的路由文件中使用重定向路由来破解这个,但这并不理想。 PS,你的资本布尔人伤害了我的眼睛。 – 2013-04-02 09:14:23