From 06caf382045b621ced3db9739e93d57d01d50cf1 Mon Sep 17 00:00:00 2001 From: Olimpia Magliulo <olimpiam@intern-ikts-MacBook-Air.local> Date: Thu, 9 Nov 2017 16:37:42 +0100 Subject: [PATCH] Bug fix: change language after login error As for loginuserpass, fixes a bug that didn't allow to change language after a login error was shown. --- modules/core/www/loginuserpassorg.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/modules/core/www/loginuserpassorg.php b/modules/core/www/loginuserpassorg.php index a0931f79b..b853d8ca8 100644 --- a/modules/core/www/loginuserpassorg.php +++ b/modules/core/www/loginuserpassorg.php @@ -49,6 +49,14 @@ if (array_key_exists('organization', $_REQUEST)) { $errorCode = NULL; $errorParams = NULL; +$queryParams = array(); + +if (isset($state['error'])) { + $errorCode = $state['error']['code']; + $errorParams = $state['error']['params']; + $queryParams = array('AuthState' => $authStateId); +} + if ($organizations === NULL || !empty($organization)) { if (!empty($username) || !empty($password)) { @@ -66,7 +74,16 @@ if ($organizations === NULL || !empty($organization)) { // Login failed. Extract error code and parameters, to display the error $errorCode = $e->getErrorCode(); $errorParams = $e->getParameters(); + $state['error']= array( + 'code' => $errorCode, + 'params' => $errorParams + ); + $authStateId = SimpleSAML_Auth_State::saveState($state, sspmod_core_Auth_UserPassOrgBase::STAGEID); + $queryParams = array('AuthState' => $authStateId); } + if (isset($state['error'])){ + unset($state['error']); + } } } @@ -84,6 +101,10 @@ $t->data['errorcode'] = $errorCode; $t->data['errorcodes'] = SimpleSAML\Error\ErrorCodes::getAllErrorCodeMessages(); $t->data['errorparams'] = $errorParams; +if (!empty($queryParams)) { + $t->data['queryParams'] = $queryParams; +} + if ($organizations !== NULL) { $t->data['selectedOrg'] = $organization; $t->data['organizations'] = $organizations; -- GitLab