From: Chuck Hagenbuch Date: Wed, 15 Jul 2009 02:26:37 +0000 (-0400) Subject: If a URL is passed to login.php with a valid session, send it through X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=a0b1b90d635aa963da28d1a86ec988f1a0b3fc2e;p=horde.git If a URL is passed to login.php with a valid session, send it through redirect.php so that it's parsed and honored instead of just redirecting to the initial IMP page. --- diff --git a/imp/login.php b/imp/login.php index 18d0b5163..00fb3d4c5 100644 --- a/imp/login.php +++ b/imp/login.php @@ -67,7 +67,14 @@ if (!empty($_SESSION['imp']) && is_array($_SESSION['imp'])) { $registry->loadPrefs('horde'); $registry->loadPrefs(); } else { - header('Location: ' . IMP_Session::getInitialUrl($actionID, false)); + if ($url_param) { + $url = Horde::applicationUrl('redirect.php', true); + $params = array('url' => $url_param); + $url = Horde_Util::addParameter($url, $params, null, false); + } else { + $url = IMP_Session::getInitialUrl($actionID, false); + } + header('Location: ' . $url); exit; } } @@ -134,7 +141,7 @@ if ($conf['server']['server_list'] != 'shown') { if (!$logout_reason && IMP_Session::canAutoLogin($server_key, $autologin)) { $url = Horde::applicationUrl('redirect.php', true); - $params = array('actionID' => 'login', 'autologin' => true); + $params = array('actionID' => 'login', 'autologin' => true, 'url' => $url_param); if (count($used_servers) == 1) { $params['server_key'] = key($used_servers); }