4use Psr\Http\Message\ServerRequestInterface;
 
   86        $this->
help = $DIC->help();
 
   88        $this->ctrl = 
$DIC->ctrl();
 
   89        $this->lng = 
$DIC->language();
 
   90        $this->lng->loadLanguageModule(
'auth');
 
   93        $this->ctrl->saveParameter($this, array(
"rep_ref_id", 
"lang", 
"target", 
"client_id"));
 
   95        $this->
user->setLanguage($this->lng->getLangKey());
 
   96        $this->
help->setScreenIdComponent(
'init');
 
  105        $cmd = $this->ctrl->getCmd(
"processIndexPHP", array(
'processIndexPHP',
'showLoginPage'));
 
  106        $next_class = $this->ctrl->getNextClass($this);
 
  108        switch ($next_class) {
 
  109            case 'ilLoginPageGUI':
 
  112            case "ilaccountregistrationgui":
 
  113                require_once(
"Services/Registration/classes/class.ilAccountRegistrationGUI.php");
 
  116            case "ilpasswordassistancegui":
 
  117                require_once(
"Services/Init/classes/class.ilPasswordAssistanceGUI.php");
 
  121                if (method_exists($this, $cmd)) {
 
  122                    return $this->$cmd();
 
  142        $this->ctrl->setCmdClass(
"ilaccountregistrationgui");
 
  143        $this->ctrl->setCmd(
"");
 
  153        $this->ctrl->setCmdClass(
"ilpasswordassistancegui");
 
  154        $this->ctrl->setCmd(
"");
 
  161    protected function showLoginPageOrStartupPage()
 
  167        $auth_session = 
$GLOBALS[
'DIC'][
'ilAuthSession'];
 
  168        $ilAppEventHandler = 
$GLOBALS[
'DIC'][
'ilAppEventHandler'];
 
  170        $force_login = 
false;
 
  172            !is_array($_REQUEST[
'cmd']) &&
 
  173            strcmp($_REQUEST[
'cmd'], 
'force_login') === 0
 
  179            $this->logger->debug(
'Force login');
 
  180            if ($auth_session->isValid()) {
 
  182                $this->logger->debug(
'Valid session -> logout current user');
 
  184                $auth_session->logout();
 
  186                $ilAppEventHandler->raise(
 
  187                    'Services/Authentication',
 
  190                        'username' => $this->
user->getLogin()
 
  194            $this->logger->debug(
'Show login page');
 
  198                    $this->mainTemplate->setOnScreenMessage(
$type, $content);
 
  207        if ($auth_session->isValid()) {
 
  208            $this->logger->debug(
'Valid session -> redirect to starting page');
 
  209            return ilInitialisation::redirectToStartingPage();
 
  211        $this->logger->debug(
'No valid session -> show login');
 
  225        $this->
help->setSubScreenId(
'login');
 
  227        $this->
getLogger()->debug(
'Showing login page');
 
  231        if (isset($this->httpRequest->getQueryParams()[
'ext_uid'])) {
 
  232            $extUid = $this->httpRequest->getQueryParams()[
'ext_uid'];
 
  234        if (isset($this->httpRequest->getQueryParams()[
'soap_pw'])) {
 
  235            $soapPw = $this->httpRequest->getQueryParams()[
'soap_pw'];
 
  238        require_once 
'Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsSoap.php';
 
  242        $credentials->tryAuthenticationOnLoginPage();
 
  245        include_once 
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsApache.php';
 
  247        $frontend->tryAuthenticationOnLoginPage();
 
  250        $tpl = self::initStartUpTemplate(
"tpl.login.html");
 
  258        $page_editor_html = $this->
showLoginForm($page_editor_html, $form);
 
  268        if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired() || $this->httpRequest->getQueryParams()[
'session_expired'] ?? 
false) {
 
  272        if (strlen($page_editor_html)) {
 
  273            $tpl->setVariable(
'LPE', $page_editor_html);
 
  277        $tosWithdrawalGui->setWithdrawalInfoForLoginScreen($this->httpRequest);
 
  287        $gtpl->setContent(
$tpl->get());
 
  288        $gtpl->printToStdout(
"DEFAULT", 
false, 
true);
 
  313        $this->
help->setSubScreenId(
'code_input');
 
  315        self::initStartUpTemplate(
"tpl.login_reactivate_code.html");
 
  323        $tpl->setVariable(
"FORM", $a_form->getHTML());
 
  324        $tpl->printToStdout(
"DEFAULT", 
false);
 
  329        global 
$lng, $ilCtrl;
 
  331        $lng->loadLanguageModule(
"auth");
 
  333        include_once 
'Services/Form/classes/class.ilPropertyFormGUI.php';
 
  336        $form->setFormAction($ilCtrl->getFormAction($this, 
'showcodeform'));
 
  337        $form->setTitle(
$lng->txt(
'auth_account_code_title'));
 
  340        $count->setRequired(
true);
 
  341        $count->setInfo(
$lng->txt(
'auth_account_code_info'));
 
  342        $form->addItem($count);
 
  346        $uname->setValue($a_username);
 
  347        $form->addItem($uname);
 
  349        $form->addCommandButton(
'processCode', 
$lng->txt(
'send'));
 
  363        global 
$lng, $ilAuth, $ilCtrl;
 
  368        if ($uname && $form->checkInput()) {
 
  369            $code = $form->getInput(
"code");
 
  371            include_once 
"Services/User/classes/class.ilAccountCode.php";
 
  380                $invalid_code = 
false;
 
  383                if ($valid_until === 
"0") {
 
  384                    $user->setTimeLimitUnlimited(
true);
 
  386                    if (is_numeric($valid_until)) {
 
  387                        $valid_until = strtotime(
"+" . $valid_until . 
"days");
 
  389                        $valid_until = explode(
"-", $valid_until);
 
  390                        $valid_until = mktime(
 
  398                        if ($valid_until < time()) {
 
  399                            $invalid_code = 
true;
 
  403                    if (!$invalid_code) {
 
  404                        $user->setTimeLimitUnlimited(
false);
 
  405                        $user->setTimeLimitUntil($valid_until);
 
  409                if (!$invalid_code) {
 
  410                    $user->setActive(
true);
 
  422                    $ilCtrl->setParameter($this, 
"cu", 1);
 
  423                    $GLOBALS[
'DIC']->language()->loadLanguageModule(
'auth');
 
  424                    ilUtil::sendSuccess(
$GLOBALS[
'DIC']->
language()->txt(
'auth_activation_code_success'), 
true);
 
  425                    $ilCtrl->redirect($this, 
"showLoginPage");
 
  429            $lng->loadLanguageModule(
"user");
 
  430            $field = $form->getItemByPostVar(
"code");
 
  431            $field->setAlert(
$lng->txt(
"user_account_code_not_valid"));
 
  434        $form->setValuesByPost();
 
  445        include_once 
'Services/Form/classes/class.ilPropertyFormGUI.php';
 
  447        $form->setFormAction($this->ctrl->getFormAction($this, 
''));
 
  448        $form->setName(
"formlogin");
 
  449        $form->setShowTopButtons(
false);
 
  450        $form->setTitle($this->lng->txt(
"login_to_ilias"));
 
  452        include_once 
'./Services/Authentication/classes/class.ilAuthModeDetermination.php';
 
  456            $visible_auth_methods = array();
 
  459                if (isset($option[
'hide_in_ui']) && $option[
'hide_in_ui']) {
 
  464                $radg->addOption($op1);
 
  465                if (isset($option[
'checked'])) {
 
  466                    $radg->setValue($key);
 
  468                $visible_auth_methods[] = $op1;
 
  471            if (count($visible_auth_methods) == 1) {
 
  472                $first_auth_method = current($visible_auth_methods);
 
  474                $hidden_auth_method->setValue($first_auth_method->getValue());
 
  475                $form->addItem($hidden_auth_method);
 
  477                $form->addItem($radg);
 
  481        $ti = 
new ilTextInputGUI($this->lng->txt(
"username"), 
"username");
 
  483        $ti->setRequired(
true);
 
  487        $pi->setUseStripSlashes(
false);
 
  488        $pi->setRetype(
false);
 
  489        $pi->setSkipSyntaxCheck(
true);
 
  491        $pi->setDisableHtmlAutoComplete(
false);
 
  492        $pi->setRequired(
true);
 
  495        require_once 
'Services/Captcha/classes/class.ilCaptchaUtil.php';
 
  496        if (ilCaptchaUtil::isActiveForLogin()) {
 
  497            require_once 
'Services/Captcha/classes/class.ilCaptchaInputGUI.php';
 
  498            $captcha = 
new ilCaptchaInputGUI($this->lng->txt(
'captcha_code'), 
'captcha_code');
 
  499            $captcha->setRequired(
true);
 
  500            $form->addItem($captcha);
 
  503        $form->addCommandButton(
"doStandardAuthentication", $this->lng->txt(
"log_in"));
 
  513        $this->
getLogger()->debug(
'Trying shibboleth authentication');
 
  515        include_once 
'./Services/AuthShibboleth/classes/class.ilAuthFrontendCredentialsShibboleth.php';
 
  517        $credentials->initFromRequest();
 
  519        include_once 
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
 
  521        $provider = $provider_factory->getProviderByAuthMode($credentials, 
AUTH_SHIBBOLETH);
 
  523        include_once 
'./Services/Authentication/classes/class.ilAuthStatus.php';
 
  526        include_once 
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
 
  529        $frontend = $frontend_factory->getFrontend(
 
  536        $frontend->authenticate();
 
  538        switch ($status->getStatus()) {
 
  541                include_once 
'./Services/Init/classes/class.ilInitialisation.php';
 
  542                ilInitialisation::redirectToStartingPage();
 
  546                return $GLOBALS[
'ilCtrl']->redirect($this, 
'showAccountMigration');
 
  550                $GLOBALS[
'ilCtrl']->redirect($this, 
'showLoginPage');
 
  566        $this->
getLogger()->debug(
'Trying cas authentication');
 
  568        include_once 
'./Services/CAS/classes/class.ilAuthFrontendCredentialsCAS.php';
 
  571        include_once 
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
 
  573        $provider = $provider_factory->getProviderByAuthMode($credentials, 
AUTH_CAS);
 
  575        include_once 
'./Services/Authentication/classes/class.ilAuthStatus.php';
 
  578        include_once 
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
 
  581        $frontend = $frontend_factory->getFrontend(
 
  588        $frontend->authenticate();
 
  589        switch ($status->getStatus()) {
 
  591                $this->
getLogger()->debug(
'Authentication successful.');
 
  592                ilInitialisation::redirectToStartingPage();
 
  608        $this->
getLogger()->debug(
'Trying lti authentication');
 
  611        $credentials->initFromRequest();
 
  614        $provider = $provider_factory->getProviderByAuthMode($credentials, 
AUTH_PROVIDER_LTI);
 
  620        $frontend = $frontend_factory->getFrontend(
 
  627        $frontend->authenticate();
 
  629        switch ($status->getStatus()) {
 
  632                ilInitialisation::redirectToStartingPage();
 
  636                return $GLOBALS[
'ilCtrl']->redirect($this, 
'showAccountMigration');
 
  640                $GLOBALS[
'ilCtrl']->redirect($this, 
'showLoginPage');
 
  655        $this->
getLogger()->debug(
'Trying apache authentication');
 
  657        $credentials = new \ilAuthFrontendCredentialsApache($this->httpRequest, $this->ctrl);
 
  658        $credentials->initFromRequest();
 
  660        $provider_factory = new \ilAuthProviderFactory();
 
  661        $provider = $provider_factory->getProviderByAuthMode($credentials, 
AUTH_APACHE);
 
  665        $frontend_factory = new \ilAuthFrontendFactory();
 
  667        $frontend = $frontend_factory->getFrontend(
 
  674        $frontend->authenticate();
 
  676        switch ($status->getStatus()) {
 
  677            case \ilAuthStatus::STATUS_AUTHENTICATED:
 
  678                if ($credentials->hasValidTargetUrl()) {
 
  680                        'Authentication successful. Redirecting to starting page: %s',
 
  681                        $credentials->getTargetUrl()
 
  683                    $this->ctrl->redirectToURL($credentials->getTargetUrl());
 
  686                        'Authentication successful, but no valid target URL given. Redirecting to default starting page.' 
  688                    \ilInitialisation::redirectToStartingPage();
 
  692            case \ilAuthStatus::STATUS_ACCOUNT_MIGRATION_REQUIRED:
 
  693                $this->ctrl->redirect($this, 
'showAccountMigration');
 
  696            case \ilAuthStatus::STATUS_AUTHENTICATION_FAILED:
 
  699                    $this->ctrl->getLinkTarget($this, 
'showLoginPage', 
'', 
false, 
false),
 
  716        if ($form->checkInput()) {
 
  717            $this->
getLogger()->debug(
'Trying to authenticate user.');
 
  719            include_once 
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
 
  721            $credentials->setUsername($form->getInput(
'username'));
 
  722            $credentials->setPassword($form->getInput(
'password'));
 
  723            $credentials->setCaptchaCode($form->getInput(
'captcha_code'));
 
  726            include_once 
'./Services/Authentication/classes/class.ilAuthModeDetermination.php';
 
  729                $credentials->setAuthMode($form->getInput(
'auth_mode'));
 
  732            include_once 
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
 
  734            $providers = $provider_factory->getProviders($credentials);
 
  736            include_once 
'./Services/Authentication/classes/class.ilAuthStatus.php';
 
  739            include_once 
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
 
  742            $frontend = $frontend_factory->getFrontend(
 
  749            $frontend->authenticate();
 
  751            switch ($status->getStatus()) {
 
  754                    include_once 
'./Services/Init/classes/class.ilInitialisation.php';
 
  755                    ilInitialisation::redirectToStartingPage();
 
  763                    return $GLOBALS[
'ilCtrl']->redirect($this, 
'showAccountMigration');
 
  807        return $page_editor_html;
 
  819        if (strlen($page_editor_html)) {
 
  821            return $page_editor_html;
 
  824        $loginSettings = 
new ilSetting(
"login_settings");
 
  825        $information = $loginSettings->get(
"login_message_" . 
$lng->getLangKey());
 
  827        if (strlen(trim($information))) {
 
  828            $tpl->setVariable(
"TXT_LOGIN_INFORMATION", $information);
 
  830        return $page_editor_html;
 
  846            $tpl = 
new ilTemplate(
'tpl.login_form_cas.html', 
true, 
true, 
'Services/Init');
 
  847            $tpl->setVariable(
"TXT_CAS_LOGIN", 
$lng->txt(
"login_to_ilias_via_cas"));
 
  849            $tpl->setVariable(
"TXT_CAS_LOGIN_INSTRUCTIONS", 
$ilSetting->get(
"cas_login_instructions"));
 
  850            $this->ctrl->setParameter($this, 
"forceCASLogin", 
"1");
 
  851            $tpl->setVariable(
"TARGET_CAS_LOGIN", $this->ctrl->getLinkTarget($this, 
"doCasAuthentication"));
 
  852            $this->ctrl->setParameter($this, 
"forceCASLogin", 
"");
 
  858                '[list-cas-login-form]',
 
  862        return $page_editor_html;
 
  879            $tpl = 
new ilTemplate(
'tpl.login_form_shibboleth.html', 
true, 
true, 
'Services/Init');
 
  881            $tpl->setVariable(
'SHIB_FORMACTION', 
'./shib_login.php'); 
 
  882            $federation_name = 
$ilSetting->get(
"shib_federation_name");
 
  883            $admin_mail = 
' <a href="mailto:' . 
$ilSetting->get(
"admin_email") . 
'">ILIAS ' . 
$lng->txt(
 
  886            if (
$ilSetting->get(
"shib_hos_type") == 
'external_wayf') {
 
  887                $tpl->setCurrentBlock(
"shibboleth_login");
 
  888                $tpl->setVariable(
"TXT_SHIB_LOGIN", 
$lng->txt(
"login_to_ilias_via_shibboleth"));
 
  889                $tpl->setVariable(
"IL_TARGET", 
$_GET[
"target"]);
 
  890                $tpl->setVariable(
"TXT_SHIB_FEDERATION_NAME", 
$ilSetting->get(
"shib_federation_name"));
 
  891                $tpl->setVariable(
"TXT_SHIB_LOGIN_BUTTON", 
$ilSetting->get(
"shib_login_button"));
 
  893                    "TXT_SHIB_LOGIN_INSTRUCTIONS",
 
  895                        $lng->txt(
"shib_general_login_instructions"),
 
  900                $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", 
$ilSetting->get(
"shib_login_instructions"));
 
  901                $tpl->parseCurrentBlock();
 
  902            } elseif (
$ilSetting->get(
"shib_hos_type") == 
'embedded_wayf') {
 
  903                $tpl->setCurrentBlock(
"shibboleth_custom_login");
 
  904                $customInstructions = stripslashes(
$ilSetting->get(
"shib_login_instructions"));
 
  905                $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $customInstructions);
 
  906                $tpl->parseCurrentBlock();
 
  908                $tpl->setCurrentBlock(
"shibboleth_wayf_login");
 
  909                $tpl->setVariable(
"TXT_SHIB_LOGIN", 
$lng->txt(
"login_to_ilias_via_shibboleth"));
 
  910                $tpl->setVariable(
"TXT_SHIB_FEDERATION_NAME", 
$ilSetting->get(
"shib_federation_name"));
 
  911                $tpl->setVariable(
"TXT_SELECT_HOME_ORGANIZATION", sprintf(
$lng->txt(
"shib_select_home_organization"), 
$ilSetting->get(
"shib_federation_name")));
 
  912                $tpl->setVariable(
"TXT_CONTINUE", 
$lng->txt(
"btn_next"));
 
  913                $tpl->setVariable(
"TXT_SHIB_HOME_ORGANIZATION", 
$lng->txt(
"shib_home_organization"));
 
  915                    "TXT_SHIB_LOGIN_INSTRUCTIONS",
 
  917                        $lng->txt(
"shib_general_wayf_login_instructions"),
 
  921                $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", 
$ilSetting->get(
"shib_login_instructions"));
 
  923                require_once 
"./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
 
  926                $tpl->setVariable(
"TXT_SHIB_INVALID_SELECTION", $WAYF->showNotice());
 
  927                $tpl->setVariable(
"SHIB_IDP_LIST", $WAYF->generateSelection());
 
  928                $tpl->setVariable(
"ILW_TARGET", 
$_GET[
"target"]);
 
  929                $tpl->parseCurrentBlock();
 
  935        return $page_editor_html;
 
  950        if (!strlen($page_editor_html)) {
 
  951            $tpl->setVariable($fallback_tplvar, $element_html);
 
  952            return $page_editor_html;
 
  955        if (!stristr($page_editor_html, $placeholder)) {
 
  956            $tpl->setVariable($fallback_tplvar, $element_html);
 
  957            return $page_editor_html;
 
  959        return str_replace($placeholder, $element_html, $page_editor_html);
 
  970        include_once 
'./Services/Authentication/classes/class.ilAuthLoginPageEditorSettings.php';
 
  972        $active_lang = $lpe->getIliasEditorLanguage(
$lng->getLangKey());
 
  979        include_once 
'./Services/COPage/classes/class.ilPageUtil.php';
 
  987        include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
 
  988        $page_gui->setStyleId(0, 
'auth');
 
  990        $page_gui->setPresentationTitle(
"");
 
  991        $page_gui->setTemplateOutput(
false);
 
  992        $page_gui->setHeader(
"");
 
  993        $ret = $page_gui->showPage();
 
 1010        $rtpl = 
new ilTemplate(
'tpl.login_registration_links.html', 
true, 
true, 
'Services/Init');
 
 1013        include_once 
'Services/Registration/classes/class.ilRegistrationSettings.php';
 
 1015            $rtpl->setCurrentBlock(
"new_registration");
 
 1016            $rtpl->setVariable(
"REGISTER", 
$lng->txt(
"registration"));
 
 1019                $this->ctrl->getLinkTargetByClass(
"ilaccountregistrationgui", 
"")
 
 1021            $rtpl->parseCurrentBlock();
 
 1024        if (
$ilSetting->get(
"password_assistance")) {
 
 1025            $rtpl->setCurrentBlock(
"password_assistance");
 
 1026            $rtpl->setVariable(
"FORGOT_PASSWORD", 
$lng->txt(
"forgot_password"));
 
 1027            $rtpl->setVariable(
"FORGOT_USERNAME", 
$lng->txt(
"forgot_username"));
 
 1029                "CMD_FORGOT_PASSWORD",
 
 1030                $this->ctrl->getLinkTargetByClass(
"ilpasswordassistancegui", 
"")
 
 1033                "CMD_FORGOT_USERNAME",
 
 1034                $this->ctrl->getLinkTargetByClass(
"ilpasswordassistancegui", 
"showUsernameAssistanceForm")
 
 1036            $rtpl->setVariable(
"LANG_ID", 
$lng->getLangKey());
 
 1037            $rtpl->parseCurrentBlock();
 
 1042            $rtpl->setCurrentBlock(
"homelink");
 
 1043            $rtpl->setVariable(
"CLIENT_ID", 
"?client_id=" . 
CLIENT_ID . 
"&lang=" . 
$lng->getLangKey());
 
 1044            $rtpl->setVariable(
"TXT_HOME", 
$lng->txt(
"home"));
 
 1045            $rtpl->parseCurrentBlock();
 
 1052            '[list-registration-link]',
 
 1053            'REG_PWD_CLIENT_LINKS' 
 1064        if (!$this->
user->getId()) {
 
 1069        if ($helper->isGloballyEnabled() && $this->termsOfServiceEvaluation->hasDocument()) {
 
 1070            $utpl = 
new ilTemplate(
'tpl.login_terms_of_service_link.html', 
true, 
true, 
'Services/Init');
 
 1071            $utpl->setVariable(
'TXT_TERMS_OF_SERVICE', $this->lng->txt(
'usr_agreement'));
 
 1072            $utpl->setVariable(
'LINK_TERMS_OF_SERVICE', $this->ctrl->getLinkTarget($this, 
'showTermsOfService'));
 
 1078                '[list-user-agreement]',
 
 1087            '[list-user-agreement]',
 
 1101                '[list-language-selection] ',
 
 1102                '[list-registration-link]',
 
 1103                '[list-user-agreement]',
 
 1104                '[list-login-form]',
 
 1105                '[list-cas-login-form]',
 
 1106                '[list-saml-login]',
 
 1107                '[list-shibboleth-login-form]' 
 1109            array(
'',
'',
'',
'',
'',
'',
''),
 
 1120        $this->
help->setSubScreenId(
'account_migration');
 
 1122        $tpl = self::initStartUpTemplate(
'tpl.login_account_migration.html');
 
 1125        $form->setFormAction($this->ctrl->getFormAction($this, 
'migrateAccount'));
 
 1127        $form->setTitle($this->lng->txt(
'auth_account_migration'));
 
 1128        $form->addCommandButton(
'migrateAccount', $this->lng->txt(
'save'));
 
 1129        $form->addCommandButton(
'showLogin', $this->lng->txt(
'cancel'));
 
 1131        $rad = 
new ilRadioGroupInputGUI($this->lng->txt(
'auth_account_migration_name'), 
'account_migration');
 
 1135            $this->lng->txt(
'auth_account_migration_keep'),
 
 1136            static::ACCOUNT_MIGRATION_MIGRATE,
 
 1137            $this->lng->txt(
'auth_info_migrate')
 
 1140        $user->setRequired(
true);
 
 1142            (
string) ($this->httpRequest->getParsedBody()[
'mig_username'] ?? 
'')
 
 1145        $user->setMaxLength(128);
 
 1146        $keep->addSubItem(
$user);
 
 1149        $pass->setRetype(
false);
 
 1150        $pass->setRequired(
true);
 
 1152            (
string) ($this->httpRequest->getParsedBody()[
'mig_password'] ?? 
'')
 
 1155        $pass->setMaxLength(128);
 
 1156        $keep->addSubItem(
$pass);
 
 1157        $rad->addOption($keep);
 
 1160            $this->lng->txt(
'auth_account_migration_new'),
 
 1161            static::ACCOUNT_MIGRATION_NEW,
 
 1162            $this->lng->txt(
'auth_info_add')
 
 1164        $rad->addOption($new);
 
 1166        $form->addItem($rad);
 
 1168        $tpl->setVariable(
'MIG_FORM', $form->getHTML());
 
 1183        if (!isset($this->httpRequest->getParsedBody()[
'account_migration'])) {
 
 1185                $this->lng->txt(
'select_one')
 
 1191            ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] === self::ACCOUNT_MIGRATION_MIGRATE) &&
 
 1193                !isset($this->httpRequest->getParsedBody()[
'mig_username']) ||
 
 1194                !is_string($this->httpRequest->getParsedBody()[
'mig_username']) ||
 
 1195                0 === strlen($this->httpRequest->getParsedBody()[
'mig_username']) ||
 
 1196                !isset($this->httpRequest->getParsedBody()[
'mig_password']) ||
 
 1197                !is_string($this->httpRequest->getParsedBody()[
'mig_password'])
 
 1201                $this->lng->txt(
'err_wrong_login')
 
 1206        if ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] == self::ACCOUNT_MIGRATION_MIGRATE) {
 
 1208        } elseif ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] == static::ACCOUNT_MIGRATION_NEW) {
 
 1224        $this->logger->debug(
'Using provider: ' . get_class($provider) . 
' for further processing.');
 
 1230        $frontend = $frontend_factory->getFrontend(
 
 1237        if ($frontend->migrateAccountNew()) {
 
 1238            ilInitialisation::redirectToStartingPage();
 
 1242        $this->ctrl->redirect($this, 
'showAccountMigration');
 
 1252        $this->logger->debug(
'Starting account migration for user: ' . (
string) 
ilSession::get(
'mig_ext_account'));
 
 1255        $credentials->setUsername((
string) 
$_POST[
'mig_username']);
 
 1256        $credentials->setPassword((
string) 
$_POST[
'mig_password']);
 
 1259        $provider = $provider_factory->getProviderByAuthMode($credentials, 
AUTH_LOCAL);
 
 1265        $frontend = $frontend_factory->getFrontend(
 
 1272        $frontend->authenticate();
 
 1274        switch ($status->getStatus()) {
 
 1276                $this->
getLogger()->debug(
'Account migration: authentication successful for ' . (
string) $_POST[
'mig_username']);
 
 1278                $provider = $provider_factory->getProviderByAuthMode(
 
 1283                $frontend = $frontend_factory->getFrontend(
 
 1290                    $frontend->migrateAccount(
$GLOBALS[
'DIC'][
'ilAuthSession'])
 
 1292                    ilInitialisation::redirectToStartingPage();
 
 1295                    $this->ctrl->redirect($this, 
'showAccountMigration');
 
 1300                $this->
getLogger()->info(
'Account migration failed for user ' . (
string) $_POST[
'mig_username']);
 
 1316        $this->
help->setSubScreenId(
'logout');
 
 1318        $tpl = self::initStartUpTemplate(
"tpl.logout.html");
 
 1323            $tpl->setCurrentBlock(
"homelink");
 
 1324            $tpl->setVariable(
"CLIENT_ID", 
"?client_id=" . 
$client_id . 
"&lang=" . 
$lng->getLangKey());
 
 1325            $tpl->setVariable(
"TXT_HOME", 
$lng->txt(
"home"));
 
 1326            $tpl->parseCurrentBlock();
 
 1331        $tpl->setVariable(
"TXT_PAGEHEADLINE", 
$lng->txt(
"logout"));
 
 1334            $lng->txt(
"logout_text") . $tosWithdrawalGui->getWithdrawalTextForLogoutScreen($this->httpRequest)
 
 1336        $tpl->setVariable(
"TXT_LOGIN", 
$lng->txt(
"login_to_ilias"));
 
 1337        $tpl->setVariable(
"CLIENT_ID", 
"?client_id=" . 
$client_id . 
"&cmd=force_login&lang=" . 
$lng->getLangKey());
 
 1355        $ilAppEventHandler = 
$DIC[
'ilAppEventHandler'];
 
 1357        $ilAppEventHandler->raise(
 
 1358            'Services/Authentication',
 
 1361                'user_id' => $this->
user->getId()
 
 1365        $user_language = 
$user->getLanguage();
 
 1368        $tosWithdrawalGui->handleWithdrawalLogoutRequest($this->httpRequest, $this);
 
 1370        $had_external_authentication = 
ilSession::get(
'used_external_auth');
 
 1373        $GLOBALS[
'DIC'][
'ilAuthSession']->logout();
 
 1375        $GLOBALS[
'ilAppEventHandler']->raise(
 
 1376            'Services/Authentication',
 
 1379                'username' => $this->
user->getLogin()
 
 1383        if ((
int) $this->
user->getAuthMode(
true) == 
AUTH_SAML && $had_external_authentication) {
 
 1384            $this->logger->info(
'Redirecting user to SAML logout script');
 
 1385            $this->ctrl->redirectToURL(
'saml.php?action=logout&logout_url=' . urlencode(ILIAS_HTTP_PATH . 
'/login.php'));
 
 1392        $this->ctrl->setParameter($this, 
'client_id', 
CLIENT_ID);
 
 1393        $this->ctrl->setParameter($this, 
'lang', $user_language);
 
 1394        $this->ctrl->redirect($this, 
'showLogout');
 
 1406        $str = 
"<p style=\"margin:15px;\"> 
 1407                        You need to enable Session Cookies in your Browser to use ILIAS. 
 1410                        <br/>Tools -> Options -> Privacy -> Cookies 
 1411                        <br/>Enable 'Allow sites to set cookies' and activate option 'Keep 
 1412                        <br/>cookies' auf 'until I close Firefox' 
 1414                        <br/><b>Mozilla/Netscape</b> 
 1415                        <br/>Edit -> Preferences -> Privacy&Security -> Cookies 
 1416                        <br/>Go to 'Cookie Lifetime Policy' and check option 'Accept for current 
 1419                        <br/><b>Internet Explorer</b> 
 1420                        <br/>Tools -> Internet Options -> Privacy -> Advanced 
 1421                        <br/>- Check 'Override automatic cookie handling' 
 1422                        <br/>- Check 'Always allow session cookies' 
 1424        $tpl->setVariable(
"CONTENT", $str);
 
 1425        $tpl->printToStdout();
 
 1443        if (!$this->
user->getId()) {
 
 1446        $back_to_login = 
false;
 
 1447        if ($this->
user->getPref(
'consent_withdrawal_requested') != 1) {
 
 1448            $back_to_login = 
true;
 
 1450        $tpl = self::initStartUpTemplate(
'tpl.view_terms_of_service.html', $back_to_login, !$back_to_login);
 
 1453        $handleDocument = $helper->isGloballyEnabled() && $this->termsOfServiceEvaluation->hasDocument();
 
 1454        if ($handleDocument) {
 
 1455            $document = $this->termsOfServiceEvaluation->document();
 
 1456            if (
'confirmWithdrawal' === $this->ctrl->getCmd()) {
 
 1457                if (isset($this->httpRequest->getParsedBody()[
'status']) && 
'withdrawn' === $this->httpRequest->getParsedBody()[
'status']) {
 
 1458                    $helper->deleteAcceptanceHistoryByUser((
int) $this->
user->getId());
 
 1459                    $this->ctrl->redirectToUrl(
'logout.php');
 
 1463            $tpl->setVariable(
'FORM_ACTION', $this->ctrl->getFormAction($this, $this->ctrl->getCmd()));
 
 1465            $tpl->setVariable(
'ACCEPT_TERMS_OF_SERVICE', $this->lng->txt(
'accept_usr_agreement'));
 
 1466            $tpl->setVariable(
'TXT_SUBMIT', $this->lng->txt(
'submit'));
 
 1468            $tpl->setPermanentLink(
'usr', 
null, 
'agreement');
 
 1469            $tpl->setVariable(
'TERMS_OF_SERVICE_CONTENT', $document->content());
 
 1472                'TERMS_OF_SERVICE_CONTENT',
 
 1474                    $this->lng->txt(
'no_agreement_description'),
 
 1492        $this->
help->setSubScreenId(
'terms_of_service');
 
 1494        $back_to_login = (
'getAcceptance' != $this->ctrl->getCmd());
 
 1496        if (!$this->
user->getId()) {
 
 1500        $tpl = self::initStartUpTemplate(
'tpl.view_terms_of_service.html', $back_to_login, !$back_to_login);
 
 1502        $this->mainTemplate->setTitle($this->lng->txt(
'accept_usr_agreement'));
 
 1503        $this->mainTemplate->setOnScreenMessage(
'info', $this->lng->txt(
'accept_usr_agreement_intro'));
 
 1506        $handleDocument = $helper->isGloballyEnabled() && $this->termsOfServiceEvaluation->hasDocument();
 
 1507        if ($handleDocument) {
 
 1508            $document = $this->termsOfServiceEvaluation->document();
 
 1510                'confirmAcceptance' === $this->ctrl->getCmd() ||
 
 1511                'getAcceptance' === $this->ctrl->getCmd()
 
 1514                    $helper->trackAcceptance($this->
user, $document);
 
 1525                $tpl->setVariable(
'FORM_ACTION', $this->ctrl->getFormAction($this, $this->ctrl->getCmd()));
 
 1526                $tpl->setVariable(
'ACCEPT_TERMS_OF_SERVICE', $this->lng->txt(
'accept_usr_agreement'));
 
 1527                $tpl->setVariable(
'TXT_ACCEPT', $this->lng->txt(
'accept_usr_agreement_btn'));
 
 1528                $tpl->setVariable(
'DENY_TERMS_OF_SERVICE', $this->lng->txt(
'deny_usr_agreement'));
 
 1531                    $this->dic->ui()->renderer()->render(
 
 1532                        $this->dic->ui()->factory()->button()->standard(
 
 1533                            $this->dic->language()->txt(
'deny_usr_agreement_btn'),
 
 1534                            'logout.php?withdraw_consent' 
 1540            $tpl->setPermanentLink(
'usr', 
null, 
'agreement');
 
 1541            $tpl->setVariable(
'TERMS_OF_SERVICE_CONTENT', $document->content());
 
 1544                'TERMS_OF_SERVICE_CONTENT',
 
 1546                    $this->lng->txt(
'no_agreement_description'),
 
 1563        if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isValid()) {
 
 1565                $this->httpRequest->getServerParams()[
'SERVER_NAME']
 
 1567                ilInitialisation::redirectToStartingPage();
 
 1584        global $objDefinition, $ilPluginAdmin, 
$ilUser;
 
 1586        $access = 
$DIC->access();
 
 1589        if (is_object($ilPluginAdmin)) {
 
 1591            $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE, 
"UIComponent", 
"uihk");
 
 1594            foreach ($pl_names as $pl) {
 
 1596                $gui_class = $ui_plugin->getUIClassInstance();
 
 1597                $resp = $gui_class->checkGotoHook($a_target);
 
 1598                if (
$resp[
"target"] !== 
false) {
 
 1599                    $a_target = 
$resp[
"target"];
 
 1605        if ($a_target == 
"") {
 
 1609        $t_arr = explode(
"_", $a_target);
 
 1612        if (
$type == 
"git") {
 
 1620        $class = $objDefinition->getClassName(
$type);
 
 1626        $full_class = 
"ilObj" . $class . 
"Access";
 
 1627        include_once(
$location . 
"/class." . $full_class . 
".php");
 
 1629        $ret = call_user_func(array($full_class, 
"_checkGoto"), $a_target);
 
 1633            !stristr($a_target, 
"_wsp") &&
 
 1635            !$objDefinition->isAdministrationObject(
$type) &&
 
 1636            $objDefinition->isRBACObject(
$type) &&
 
 1638            global $tree, $rbacsystem, $ilAccess;
 
 1641            if ($t_arr[0] == 
"pg") {
 
 1642                if (isset($t_arr[2])) {
 
 1643                    $ref_id = $t_arr[2];
 
 1648                        $ref_id = array_shift($ref_id);
 
 1652                $ref_id = $t_arr[1];
 
 1655            include_once 
"Services/Membership/classes/class.ilParticipants.php";
 
 1656            $block_obj = array();
 
 1659            $path = $tree->getPathId($ref_id);
 
 1661            foreach ($path as $path_ref_id) {
 
 1662                $redirect_infopage = 
false;
 
 1663                $add_member_role = 
false;
 
 1670                    !$access->doActivationCheck(
'read', 
'', $path_ref_id, 
$ilUser->getId(), $pobj_id, $ptype) ||
 
 1671                    !$access->doStatusCheck(
'read', 
'', $path_ref_id, 
$ilUser->getId(), $pobj_id, $ptype)
 
 1675                } elseif ($ptype == 
"crs") {
 
 1677                    include_once 
"Modules/Course/classes/class.ilCourseParticipant.php";
 
 1679                    if (!$participants->isAssigned()) {
 
 1681                        include_once 
"Modules/Course/classes/class.ilObjCourse.php";
 
 1684                            $block_obj[] = $path_ref_id;
 
 1685                            $add_member_role = 
true;
 
 1687                            $redirect_infopage = 
true;
 
 1690                } elseif ($ptype == 
"grp") {
 
 1692                    include_once 
"Modules/Group/classes/class.ilGroupParticipants.php";
 
 1695                        include_once 
"Modules/Group/classes/class.ilObjGroup.php";
 
 1697                        if ($group_obj->isRegistrationEnabled()) {
 
 1698                            $block_obj[] = $path_ref_id;
 
 1699                            $add_member_role = 
true;
 
 1701                            $redirect_infopage = 
true;
 
 1707                if ($add_member_role) {
 
 1709                    $rbacsystem->resetPACache(
$ilUser->getId(), $path_ref_id);
 
 1710                    if (!$rbacsystem->checkAccess(
"join", $path_ref_id)) {
 
 1711                        $redirect_infopage = 
true;
 
 1713                        $rbacsystem->addTemporaryRole(
 
 1721                if ($redirect_infopage) {
 
 1722                    if ($rbacsystem->checkAccess(
"visible", $path_ref_id)) {
 
 1724                            "&ref_id=" . $path_ref_id . 
"&cmd=infoScreen");
 
 1733            $rbacsystem->resetPACache(
$ilUser->getId(), $ref_id);
 
 1734            if ($rbacsystem->checkAccess(
"read", $ref_id) && 
sizeof($block_obj)) { 
 
 1740                $_SESSION[
"pending_goto"] = 
"goto.php?target=" . $a_target;
 
 1744                    "&ref_id=" . array_shift($block_obj));
 
 1751    public function confirmRegistration()
 
 1755        $this->lng->loadLanguageModule(
'registration');
 
 1757        if (!isset(
$_GET[
'rh']) || !strlen(trim(
$_GET[
'rh']))) {
 
 1759            $this->ctrl->redirectToURL(sprintf(
 
 1760                './login.php?cmd=force_login&lang=%s',
 
 1761                $this->lng->getLangKey()
 
 1771            $user->setActive(
true);
 
 1773            if ($oRegSettings->passwordGenerationEnabled()) {
 
 1777                $user->setLastPasswordChangeTS(time());
 
 1781            $target = 
$user->getPref(
'reg_target');
 
 1782            if (strlen($target) > 0) {
 
 1784                $_GET[
'target'] = $target;
 
 1792            $accountMail->withEmailConfirmationRegistrationMode()->send(
$user, 
$password);
 
 1795            $this->ctrl->redirectToURL(sprintf(
 
 1796                './login.php?cmd=force_login&lang=%s',
 
 1797                $user->getLanguage()
 
 1801            $soap_client->setResponseTimeout(1);
 
 1802            $soap_client->enableWSDL(
true);
 
 1803            $soap_client->init();
 
 1805            $this->logger->info(
'Triggered soap call (background process) for deletion of inactive user objects with expired confirmation hash values (dual opt in) ...');
 
 1808                'deleteExpiredDualOptInUserObjects',
 
 1811                    $exception->getCode() 
 
 1816            $this->ctrl->redirectToURL(sprintf(
 
 1817                './login.php?cmd=force_login&lang=%s',
 
 1818                $this->lng->getLangKey()
 
 1822            $this->ctrl->redirectToURL(sprintf(
 
 1823                './login.php?cmd=force_login&lang=%s',
 
 1824                $this->lng->getLangKey()
 
 1835    public static function initStartUpTemplate($a_tmpl, $a_show_back = 
false, $a_show_logout = 
false)
 
 1847        $tpl->addBlockfile(
'CONTENT', 
'content', 
'tpl.startup_screen.html', 
'Services/Init');
 
 1849        $view_title = 
$lng->txt(
'login_to_ilias');
 
 1854            $tpl->setCurrentBlock(
'link_item_bl');
 
 1855            $tpl->setVariable(
'LINK_TXT', $view_title);
 
 1856            $tpl->setVariable(
'LINK_URL', 
'login.php?cmd=force_login&' . 
$param);
 
 1857            $tpl->parseCurrentBlock();
 
 1859            include_once 
'./Services/Init/classes/class.ilPublicSectionSettings.php';
 
 1862                $tpl->setVariable(
'LINK_URL', 
'index.php?' . 
$param);
 
 1863                $tpl->setVariable(
'LINK_TXT', 
$lng->txt(
'home'));
 
 1864                $tpl->parseCurrentBlock();
 
 1866        } elseif ($a_show_logout) {
 
 1867            $view_title = 
$lng->txt(
'logout');
 
 1868            $tpl->setCurrentBlock(
'link_item_bl');
 
 1869            $tpl->setVariable(
'LINK_TXT', $view_title);
 
 1870            $tpl->setVariable(
'LINK_URL', ILIAS_HTTP_PATH . 
'/logout.php');
 
 1871            $tpl->parseCurrentBlock();
 
 1874        if (is_array($a_tmpl)) {
 
 1875            $template_file = $a_tmpl[0];
 
 1876            $template_dir = $a_tmpl[1];
 
 1878            $template_file = $a_tmpl;
 
 1879            $template_dir = 
'Services/Init';
 
 1882        $tpl->addBlockFile(
'STARTUP_CONTENT', 
'startup_content', $template_file, $template_dir);
 
 1884        PageContentProvider::setViewTitle($view_title);
 
 1885        $short_title = 
$ilSetting->get(
'short_inst_name');
 
 1886        if (trim($short_title) === 
"") {
 
 1887            $short_title = 
'ILIAS';
 
 1889        PageContentProvider::setShortTitle($short_title);
 
 1891        $header_title = (string) ilObjSystemFolder::_getHeaderTitle();
 
 1892        PageContentProvider::setTitle($header_title);
 
 1903        require_once 
'Services/Saml/classes/class.ilSamlIdp.php';
 
 1904        require_once 
'Services/Saml/classes/class.ilSamlSettings.php';
 
 1907            $tpl = 
new ilTemplate(
'tpl.login_form_saml.html', 
true, 
true, 
'Services/Saml');
 
 1910            if (isset(
$_GET[
'target'])) {
 
 1914            $tpl->setVariable(
'SAML_SCRIPT_URL', 
'./saml.php' . $return);
 
 1916            $tpl->setVariable(
'LOGIN_TO_ILIAS_VIA_SAML', 
$GLOBALS[
'DIC']->
language()->txt(
'login_to_ilias_via_saml'));
 
 1917            $tpl->setVariable(
'TXT_SAML_LOGIN_TXT', 
$GLOBALS[
'DIC']->
language()->txt(
'saml_login_form_txt'));
 
 1918            $tpl->setVariable(
'TXT_SAML_LOGIN_INFO_TXT', 
$GLOBALS[
'DIC']->
language()->txt(
'saml_login_form_info_txt'));
 
 1924                '[list-saml-login]',
 
 1929        return $page_editor_html;
 
 1943        if ($oidc_settings->getActive()) {
 
 1944            $tpl = 
new ilTemplate(
'tpl.login_element.html', 
true, 
true, 
'Services/OpenIdConnect');
 
 1946            $lang->loadLanguageModule(
'auth');
 
 1947            $tpl->setVariable(
'TXT_OIDCONNECT_HEADER', 
$lang->txt(
'auth_oidc_login_element_info'));
 
 1949            $target = empty(
$_GET[
'target']) ? 
'' : (
'?target=' . (string) 
$_GET[
'target']);
 
 1950            switch ($oidc_settings->getLoginElementType()) {
 
 1954                    $tpl->setVariable(
'SCRIPT_OIDCONNECT_T', ILIAS_HTTP_PATH . 
'/openidconnect.php' . $target);
 
 1955                    $tpl->setVariable(
'TXT_OIDC', $oidc_settings->getLoginElemenText());
 
 1959                    $tpl->setVariable(
'SCRIPT_OIDCONNECT_I', ILIAS_HTTP_PATH . 
'/openidconnect.php' . $target);
 
 1960                    $tpl->setVariable(
'IMG_SOURCE', $oidc_settings->getImageFilePath());
 
 1968                '[list-openid-connect-login]',
 
 1969                'OPEN_ID_CONNECT_LOGIN_FORM' 
 1973        return $page_editor_html;
 
 1983        $this->
getLogger()->debug(
'Trying openid connect authentication');
 
 1986        $credentials->initFromRequest();
 
 1995        $frontend = $frontend_factory->getFrontend(
 
 2002        $frontend->authenticate();
 
 2004        switch ($status->getStatus()) {
 
 2007                include_once 
'./Services/Init/classes/class.ilInitialisation.php';
 
 2008                ilInitialisation::redirectToStartingPage();
 
 2013                $GLOBALS[
'ilCtrl']->redirect($this, 
'showLoginPage');
 
 2030        $this->
getLogger()->debug(
'Trying saml authentication');
 
 2032        $request = 
$DIC->http()->request();
 
 2033        $params = $request->getQueryParams();
 
 2038        if (isset($params[
'action']) && $params[
'action'] == 
'logout') {
 
 2039            $logout_url = isset($params[
'logout_url']) ? $params[
'logout_url'] : 
'';
 
 2041            $auth->logout($logout_url);
 
 2044        if (isset($params[
'target']) && !isset($params[
'returnTo'])) {
 
 2045            $params[
'returnTo'] = $params[
'target'];
 
 2047        if (isset($params[
'returnTo'])) {
 
 2048            $auth->storeParam(
'target', $params[
'returnTo']);
 
 2053        if (!
$auth->isAuthenticated()) {
 
 2055            if (!isset(
$_GET[
'idpentityid']) || !isset(
$_GET[
'saml_idp_id'])) {
 
 2057                if (1 == count($activeIdps)) {
 
 2058                    $idp = current($activeIdps);
 
 2059                    $_GET[
'idpentityid'] = $idp->getEntityId();
 
 2060                    $_GET[
'saml_idp_id'] = $idp->getIdpId();
 
 2063                        'Found exactly one active IDP with id %s: %s',
 
 2067                } elseif (0 == count($activeIdps)) {
 
 2069                    $GLOBALS[
'DIC']->ctrl()->redirect($this, 
'showLoginPage');
 
 2077            $auth->storeParam(
'idpId', (
int) 
$_GET[
'saml_idp_id']);
 
 2079                'Stored relevant IDP id in session: %s',
 
 2080                (
string) 
$auth->getParam(
'idpId')
 
 2089        $auth->protectResource();
 
 2092            'SAML authentication successful, continuing with ILIAS internal authentication process...' 
 2095        $idpId = (int) 
$auth->getParam(
'idpId');
 
 2098            'Internal SAML IDP id fetched from session: %s',
 
 2104                'No valid internal IDP id found (most probably due to IDP initiated SSO), trying fallback determination...' 
 2106            $authData = 
$auth->getAuthDataArray();
 
 2107            if (isset($authData[
'saml:sp:IdP'])) {
 
 2110                    'Searching active ILIAS IDP by entity id "%s" results in: %s',
 
 2111                    $authData[
'saml:sp:IdP'],
 
 2116                    'Could not execute fallback determination, no IDP entity ID found SAML authentication session data' 
 2124        $this->logger->debug(sprintf(
 
 2125            'Retrieved "target" parameter: %s',
 
 2126            print_r(
$_GET[
'target'], 
true)
 
 2130        $credentials->initFromRequest();
 
 2139        $frontend = $frontend_factory->getFrontend(
 
 2146        $frontend->authenticate();
 
 2148        switch ($status->getStatus()) {
 
 2151                return ilInitialisation::redirectToStartingPage();
 
 2154                return $GLOBALS[
'DIC']->ctrl()->redirect($this, 
'showAccountMigration');
 
 2158                $GLOBALS[
'DIC']->ctrl()->redirect($this, 
'showLoginPage');
 
 2176        $this->
help->setSubScreenId(
'saml_idp_selection');
 
 2178        self::initStartUpTemplate(array(
'tpl.saml_idp_selection.html', 
'Services/Saml'));
 
 2181        $renderer = 
$DIC->ui()->renderer();
 
 2183        $DIC->ctrl()->setTargetScript(
'saml.php');
 
 2189        foreach ($idps as $idp) {
 
 2190            $DIC->ctrl()->setParameter($this, 
'saml_idp_id', $idp->getIdpId());
 
 2191            $DIC->ctrl()->setParameter($this, 
'idpentityid', urlencode($idp->getEntityId()));
 
 2194                'idp_link' => $renderer->render(
$factory->link()->standard($idp->getEntityId(), 
$DIC->ctrl()->getLinkTarget($this, 
'doSamlAuthentication')))
 
 2198        $table->setData($items);
 
 2199        $this->mainTemplate->setVariable(
'CONTENT', $table->getHtml());
 
 2201        $this->mainTemplate->printToStdout(
'DEFAULT', 
false);
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
Class ilPageContentProvider.
const AUTH_OPENID_CONNECT
static isUnusedCode($code)
static getCodeValidUntil($code)
static applyRoleAssignments(ilObjUser $user, $code)
static applyAccessLimits(ilObjUser $user, $code)
Class ilAccountRegistrationGUI.
Class ilAccountRegistrationMail.
Description of class class.
Auth frontend credentials for CAS auth.
Auth credentials for lti oauth based authentication.
Class ilOpenIdConnectSettingsGUI.
Class ilAuthFrontendCredentialsSaml.
Description of class class.
Description of class class.
Factory for auth frontend classes.
const CONTEXT_STANDARD_FORM
const MIG_EXTERNAL_ACCOUNT
const MIG_TRIGGER_AUTHMODE
static getInstance()
Get singelton instance.
static _getInstance()
Get instance.
const STATUS_CODE_ACTIVATION_REQUIRED
const STATUS_AUTHENTICATED
static getInstance()
Get status instance.
const STATUS_AUTHENTICATION_FAILED
const STATUS_ACCOUNT_MIGRATION_REQUIRED
static _getMultipleAuthModeOptions($lng)
static _hasMultipleAuthenticationMethods()
special template class to simplify handling of ITX/PEAR
const MESSAGE_TYPE_SUCCESS
const MESSAGE_TYPE_QUESTION
const MESSAGE_TYPE_FAILURE
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static goToPublicSection()
go to public section
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static lookupId($a_lang_key)
Lookup obj_id of language @global ilDB $ilDB.
static getLogger($a_component_id)
Get component logger.
static _registrationEnabled($a_obj_id)
Registration enabled? Method is in Access class, since it is needed by Access/ListGUI.
static _isActivated($a_obj_id)
Is activated.
static getSyntaxStylePath()
get syntax style path
static getContentStylePath($a_style_id, $add_random=true, $add_token=true)
get content style path
static _verifyRegistrationHash($a_hash)
Verifies a registration hash.
static _lookupLogin($a_user_id)
lookup login
static _lookupId($a_user_str)
Lookup id by login.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static _lookupObjId($a_id)
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
const LOGIN_ELEMENT_TYPE_IMG
static getInstance()
Get singleton instance.
const LOGIN_ELEMENT_TYPE_TXT
static _existsAndNotEmpty($a_parent_type, $a_id, $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages)
static getDefaultMemberRole($a_ref_id)
Password assistance facility for users who have forgotten their password or for users for whom no pas...
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
static getInstance()
Get instance.
This class represents an option in a radio group.
Class for user related exception handling in ILIAS.
Class for user related exception handling in ILIAS.
Class ilObjAuthSettingsGUI.
static _lookupRegistrationType()
Class ilSamlIdpSelectionTableGUI.
static getActiveIdpList()
static geIdpIdByEntityId($entityId)
static set($a_var, $a_val)
Set a value.
static setClosingContext($a_context)
set closing context (for statistics)
static get($a_var)
Get a value.
processIndexPHP()
process index.php
showLoginInformation($page_editor_html, $tpl)
Show login information.
showShibbolethLoginForm($page_editor_html)
Show shibboleth login form.
showLoginPage(ilPropertyFormGUI $form=null)
showCASLoginForm($page_editor_html)
Show cas login @global ilSetting $ilSetting.
showAccountMigration(string $message='')
Show account migration screen.
static _checkGoto($a_target)
doStandardAuthentication()
Check form input; authenticate user.
getAcceptance()
Get terms of service.
doApacheAuthentication()
Try apache auth.
showCodeForm($a_username=null, $a_form=null)
doOpenIdConnectAuthentication()
do open id connect authentication
__construct(\ilObjUser $user=null, \ilTermsOfServiceDocumentEvaluation $termsOfServiceEvaluation=null, \ilGlobalTemplate $mainTemplate=null, ServerRequestInterface $httpRequest=null)
ilStartUpGUI constructor.
const ACCOUNT_MIGRATION_MIGRATE
purgePlaceholders($page_editor_html)
Purge page editor html from unused placeholders.
initStandardLoginForm()
Initialize the standard.
doShibbolethAuthentication()
Trying shibboleth authentication.
migrateAccount()
Migrate Account.
static printToGlobalTemplate($tpl)
substituteLoginPageElements($tpl, $page_editor_html, $element_html, $placeholder, $fallback_tplvar)
Substitute login page elements.
retrieveMessagesFromSession()
const ACCOUNT_MIGRATION_NEW
jumpToPasswordAssistance()
jump to password assistance
showLogout()
Show logout screen.
showTermsOfService(bool $accepted=false)
Show terms of service.
showSamlIdpSelection(\ilSamlAuth $auth, array $idps)
doLTIAuthentication()
Handle lti requests.
jumpToRegistration()
jump to registration gui
showLoginForm($page_editor_html, ilPropertyFormGUI $form=null)
Show login form @global ilSetting $ilSetting.
executeCommand()
execute command
$termsOfServiceEvaluation
getLoginPageEditorHTML()
Get HTML of ILIAS login page editor.
initCodeForm($a_username)
doLogout()
show logout screen
doCasAuthentication()
Try CAS auth.
showNoCookiesScreen()
show help screen, if cookies are disabled
showOpenIdConnectLoginForm($page_editor_html)
showRegistrationLinks($page_editor_html)
Show registration, password forgotten, client slection links @global ilLanguage $lng @global ilSettin...
showTermsOfServiceLink(string $page_editor_html)
Show terms of service link.
showSamlLoginForm($page_editor_html)
special template class to simplify handling of ITX/PEAR
Class ilTermsOfServiceHelper.
Class ilTermsOfServiceWithdrawalGUIHelper.
This class represents a text property in a property form.
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static generatePasswords($a_number)
Generate a number of passwords.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
Interface ilTermsOfServiceDocumentEvaluation.
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
static http()
Fetches the global http state from ILIAS.