GetAuthUser(); if ($sAuthUser && (strlen($sAuthUser) > 0)) { Session::Set('login_mode', 'external'); } } return LoginWebPage::LOGIN_FSM_CONTINUE; } protected function OnCheckCredentials(&$iErrorCode) { if (Session::Get('login_mode') == 'external') { $sAuthUser = $this->GetAuthUser(); if (!UserRights::CheckCredentials($sAuthUser, '', Session::Get('login_mode'), 'external')) { $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; return LoginWebPage::LOGIN_FSM_ERROR; } Session::Set('auth_user', $sAuthUser); } return LoginWebPage::LOGIN_FSM_CONTINUE; } protected function OnCredentialsOK(&$iErrorCode) { if (Session::Get('login_mode') == 'external') { LoginWebPage::OnLoginSuccess(Session::Get('auth_user'), 'external', Session::Get('login_mode')); } return LoginWebPage::LOGIN_FSM_CONTINUE; } protected function OnConnected(&$iErrorCode) { if (Session::Get('login_mode') == 'external') { Session::Set('can_logoff', false); return LoginWebPage::CheckLoggedUser($iErrorCode); } return LoginWebPage::LOGIN_FSM_CONTINUE; } protected function OnError(&$iErrorCode) { if (Session::Get('login_mode') == 'external') { LoginWebPage::HTTP401Error(); } return LoginWebPage::LOGIN_FSM_CONTINUE; } /** * @return bool */ private function GetAuthUser() { $sExtAuthVar = MetaModel::GetConfig()->GetExternalAuthenticationVariable(); // In which variable is the info passed ? eval('$sAuthUser = isset('.$sExtAuthVar.') ? '.$sExtAuthVar.' : false;'); // Retrieve the value /** @var string $sAuthUser */ return $sAuthUser; // Retrieve the value } }