* Login: fix not working forced password reset

This commit is contained in:
Ralf Becker 2020-07-30 15:16:09 +02:00
parent 1624ceae07
commit 8a14301710

View File

@ -51,25 +51,30 @@ if(isset($GLOBALS['sitemgr_info']) && $GLOBALS['egw_info']['user']['userid'] ==
} }
} }
$forward = isset($_GET['phpgw_forward']) ? urldecode($_GET['phpgw_forward']) : @$_POST['phpgw_forward']; function parseForward(&$extra_vars)
if (!$forward)
{ {
$extra_vars = 'cd=yes'; $forward = isset($_GET['phpgw_forward']) ? urldecode($_GET['phpgw_forward']) : @$_POST['phpgw_forward'];
$forward = '/index.php'; if (!$forward)
}
else
{
list($forward,$extra_vars) = explode('?',$forward,2);
// only append cd=yes, if there is not already a cd value!
if (strpos($extra_vars, 'cd=') === false)
{ {
$extra_vars .= ($extra_vars ? '&' : '').'cd=yes'; $extra_vars = 'cd=yes';
$forward = '/index.php';
} }
else
{
list($forward, $extra_vars) = explode('?', $forward, 2);
// only append cd=yes, if there is not already a cd value!
if (strpos($extra_vars, 'cd=') === false)
{
$extra_vars .= ($extra_vars ? '&' : '') . 'cd=yes';
}
}
return $forward;
} }
// SSO login: CAS, SAML, ... // SSO login: CAS, SAML, ...
if (($GLOBALS['sessionid'] = Api\Auth::login())) if (($GLOBALS['sessionid'] = Api\Auth::login()))
{ {
$forward = parseForward($extra_vars);
$GLOBALS['egw']->redirect_link($forward, $extra_vars); $GLOBALS['egw']->redirect_link($forward, $extra_vars);
} }
else else
@ -262,6 +267,8 @@ else
// check if new translations are available // check if new translations are available
Api\Translation::check_invalidate_cache(); Api\Translation::check_invalidate_cache();
$forward = parseForward($extra_vars);
if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['REQUEST_URI']) === false) { if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['REQUEST_URI']) === false) {
// login requuest does not come from login.php // login requuest does not come from login.php
// redirect to referer on logout // redirect to referer on logout