Skip to content

Commit

Permalink
Merge pull request #1451 from Phally/master-3922
Browse files Browse the repository at this point in the history
Strips the base off the generated URL from the AuthComponent.
  • Loading branch information
jippi committed Jul 26, 2013
2 parents 8b21710 + f7eab23 commit b345a8f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/Cake/Controller/Component/AuthComponent.php
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ public function redirectUrl($url = null) {
$redir = '/';
}
if (is_array($redir)) {
return Router::url($redir);
return Router::url($redir + array('base' => false));
}
return $redir;
}
Expand Down
35 changes: 35 additions & 0 deletions lib/Cake/Test/Case/Controller/Component/AuthComponentTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1268,6 +1268,41 @@ public function testRedirectSessionReadEqualToLoginAction() {
$this->assertFalse($this->Auth->Session->check('Auth.redirect'));
}

/**
* test that the returned URL doesn't contain the base URL.
*
* @see https://cakephp.lighthouseapp.com/projects/42648/tickets/3922-authcomponentredirecturl-prepends-appbaseurl
*
* @return void This test method doesn't return anything.
*/
public function testRedirectUrlWithBaseSet() {
$App = Configure::read('App');

Configure::write('App', array(
'dir' => APP_DIR,
'webroot' => WEBROOT_DIR,
'base' => false,
'baseUrl' => '/cake/index.php'
));

$url = '/users/login';
$this->Auth->request = $this->Controller->request = new CakeRequest($url);
$this->Auth->request->addParams(Router::parse($url));
$this->Auth->request->url = Router::normalize($url);

Router::setRequestInfo($this->Auth->request);

$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'home');

$result = $this->Auth->redirectUrl();
$this->assertEquals('/users/home', $result);
$this->assertFalse($this->Auth->Session->check('Auth.redirect'));

Configure::write('App', $App);
Router::reload();
}

/**
* test password hashing
*
Expand Down

0 comments on commit b345a8f

Please sign in to comment.