I don't really understand your nested function login()
, but I assume it is just sample from your /users/login
action, so let me rewrite the beforeFilter
method to redirect your user to /users/userhome
if he hits your domain and is logged in using cookie:
public function beforeFilter() {
$this->Cookie->httpOnly = true;
if (!$this->Auth->loggedIn() && $this->Cookie->read('rememberMe')) {
$cookie = $this->Cookie->read('rememberMe');
debug($cookie); // no need to echo it, debug function does that already
$this->loadModel('User'); // If the User model is not loaded already
$user = $this->User->find('first', array(
'conditions' => array(
'User.username' => $cookie['username'],
'User.password' => $cookie['password']
)
));
if ($user && !$this->Auth->login($user['User'])) {
$this->redirect('/users/logout'); // destroy session & cookie
} else {
$this->redirect($this->Auth->redirectUrl()); // redirect to Auth.redirect if it is set, else to Auth.loginRedirect ('/users/userhome') if it is set, else to /
}
}
}
FYI: $this->Auth->redirect()
is deprecated as of 2.3, use $this->Auth->redirectUrl()
instead