* Login: fix not working forced password reset

This commit is contained in:
Ralf Becker 2020-07-30 15:16:09 +02:00
parent b458c11f09
commit 9c63ee5d23

View File

@ -51,6 +51,8 @@ if(isset($GLOBALS['sitemgr_info']) && $GLOBALS['egw_info']['user']['userid'] ==
} }
} }
function parseForward(&$extra_vars)
{
$forward = isset($_GET['phpgw_forward']) ? urldecode($_GET['phpgw_forward']) : @$_POST['phpgw_forward']; $forward = isset($_GET['phpgw_forward']) ? urldecode($_GET['phpgw_forward']) : @$_POST['phpgw_forward'];
if (!$forward) if (!$forward)
{ {
@ -66,10 +68,13 @@ else
$extra_vars .= ($extra_vars ? '&' : '') . 'cd=yes'; $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