Rebalance where URL normalization happens in AuthComponent.

Make URL's not include the base path when storing them in the session.
This makes future redirection simpler. When URL's are an array use
Router::url() on them.

Fixes #3916
This commit is contained in:
mark_story 2013-07-12 21:40:38 -04:00
parent e016f1156f
commit d40c7376ce

View file

@ -307,7 +307,6 @@ class AuthComponent extends Component {
if ($loginAction != $url && in_array($action, array_map('strtolower', $this->allowedActions))) {
return true;
}
if ($loginAction == $url) {
if (empty($request->data)) {
if (!$this->Session->check('Auth.redirect') && env('HTTP_REFERER')) {
@ -321,7 +320,7 @@ class AuthComponent extends Component {
if (!$this->_getUser()) {
if (!$request->is('ajax')) {
$this->flash($this->authError);
$this->Session->write('Auth.redirect', $request->here());
$this->Session->write('Auth.redirect', $request->here(false));
$controller->redirect($loginAction);
return false;
}
@ -677,7 +676,10 @@ class AuthComponent extends Component {
} else {
$redir = '/';
}
return Router::normalize($redir, false);
if (is_array($redir)) {
return Router::url($redir);
}
return $redir;
}
/**