4use Psr\Http\Message\ServerRequestInterface;
77 $this->ctrl =
$DIC->ctrl();
78 $this->lng =
$DIC->language();
79 $this->lng->loadLanguageModule(
'auth');
82 $this->ctrl->saveParameter($this, array(
"rep_ref_id",
"lang",
"target",
"client_id"));
84 $this->
user->setLanguage($this->lng->getLangKey());
93 $cmd = $this->ctrl->getCmd(
"processIndexPHP", array(
'processIndexPHP',
'showLoginPage'));
94 $next_class = $this->ctrl->getNextClass($this);
96 switch ($next_class) {
97 case 'ilLoginPageGUI':
100 case "ilaccountregistrationgui":
101 require_once(
"Services/Registration/classes/class.ilAccountRegistrationGUI.php");
104 case "ilpasswordassistancegui":
105 require_once(
"Services/Init/classes/class.ilPasswordAssistanceGUI.php");
109 if (method_exists($this, $cmd)) {
110 return $this->$cmd();
130 $this->ctrl->setCmdClass(
"ilaccountregistrationgui");
131 $this->ctrl->setCmd(
"");
141 $this->ctrl->setCmdClass(
"ilpasswordassistancegui");
142 $this->ctrl->setCmd(
"");
149 protected function showLoginPageOrStartupPage()
155 $auth_session =
$GLOBALS[
'DIC'][
'ilAuthSession'];
156 $ilAppEventHandler =
$GLOBALS[
'DIC'][
'ilAppEventHandler'];
158 $force_login =
false;
160 !is_array($_REQUEST[
'cmd']) &&
161 strcmp($_REQUEST[
'cmd'],
'force_login') === 0
167 $this->logger->debug(
'Force login');
168 if ($auth_session->isValid()) {
169 $this->logger->debug(
'Valid session -> logout current user');
171 $auth_session->logout();
173 $ilAppEventHandler->raise(
174 'Services/Authentication',
177 'username' => $this->
user->getLogin()
181 $this->logger->debug(
'Show login page');
188 if ($auth_session->isValid()) {
189 $this->logger->debug(
'Valid session -> redirect to starting page');
190 return ilInitialisation::redirectToStartingPage();
192 $this->logger->debug(
'No valid session -> show login');
207 $this->
getLogger()->debug(
'Showing login page');
210 if (isset(
$_GET[
'ext_uid']) && is_string(
$_GET[
'ext_uid'])) {
211 $extUid =
$_GET[
'ext_uid'];
214 if (isset(
$_GET[
'soap_pw']) && is_string(
$_GET[
'soap_pw'])) {
215 $soapPw =
$_GET[
'soap_pw'];
218 require_once
'Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsSoap.php';
222 $credentials->tryAuthenticationOnLoginPage();
225 include_once
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentialsApache.php';
227 $frontend->tryAuthenticationOnLoginPage();
230 $tpl = self::initStartUpTemplate(
"tpl.login.html");
238 $page_editor_html = $this->
showLoginForm($page_editor_html, $form);
248 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
252 if (strlen($page_editor_html)) {
253 $tpl->setVariable(
'LPE', $page_editor_html);
264 $gtpl->setContent(
$tpl->get());
265 $gtpl->printToStdout(
"DEFAULT",
false,
true);
272 self::initStartUpTemplate(
"tpl.login_reactivate_code.html");
280 $tpl->setVariable(
"FORM", $a_form->getHTML());
281 $tpl->printToStdout(
"DEFAULT",
false);
288 $lng->loadLanguageModule(
"auth");
290 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
293 $form->setFormAction(
$ilCtrl->getFormAction($this,
'showcodeform'));
294 $form->setTitle(
$lng->txt(
'auth_account_code_title'));
297 $count->setRequired(
true);
298 $count->setInfo(
$lng->txt(
'auth_account_code_info'));
299 $form->addItem($count);
303 $uname->setValue($a_username);
304 $form->addItem($uname);
306 $form->addCommandButton(
'processCode',
$lng->txt(
'send'));
325 if ($uname && $form->checkInput()) {
326 $code = $form->getInput(
"code");
328 include_once
"Services/User/classes/class.ilAccountCode.php";
337 $invalid_code =
false;
340 if ($valid_until ===
"0") {
341 $user->setTimeLimitUnlimited(
true);
343 if (is_numeric($valid_until)) {
344 $valid_until = strtotime(
"+" . $valid_until .
"days");
346 $valid_until = explode(
"-", $valid_until);
347 $valid_until = mktime(
355 if ($valid_until < time()) {
356 $invalid_code =
true;
360 if (!$invalid_code) {
361 $user->setTimeLimitUnlimited(
false);
362 $user->setTimeLimitUntil($valid_until);
366 if (!$invalid_code) {
367 $user->setActive(
true);
379 $ilCtrl->setParameter($this,
"cu", 1);
380 $GLOBALS[
'DIC']->language()->loadLanguageModule(
'auth');
381 ilUtil::sendSuccess(
$GLOBALS[
'DIC']->
language()->txt(
'auth_activation_code_success'),
true);
382 $ilCtrl->redirect($this,
"showLoginPage");
386 $lng->loadLanguageModule(
"user");
387 $field = $form->getItemByPostVar(
"code");
388 $field->setAlert(
$lng->txt(
"user_account_code_not_valid"));
391 $form->setValuesByPost();
402 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
404 $form->setFormAction($this->ctrl->getFormAction($this,
''));
405 $form->setName(
"formlogin");
406 $form->setShowTopButtons(
false);
407 $form->setTitle($this->lng->txt(
"login_to_ilias"));
409 include_once
'./Services/Authentication/classes/class.ilAuthModeDetermination.php';
413 $visible_auth_methods = array();
416 if (isset($option[
'hide_in_ui']) && $option[
'hide_in_ui']) {
421 $radg->addOption($op1);
422 if (isset($option[
'checked'])) {
423 $radg->setValue($key);
425 $visible_auth_methods[] = $op1;
428 if (count($visible_auth_methods) == 1) {
429 $first_auth_method = current($visible_auth_methods);
431 $hidden_auth_method->setValue($first_auth_method->getValue());
432 $form->addItem($hidden_auth_method);
434 $form->addItem($radg);
438 $ti =
new ilTextInputGUI($this->lng->txt(
"username"),
"username");
440 $ti->setRequired(
true);
444 $pi->setUseStripSlashes(
false);
445 $pi->setRetype(
false);
446 $pi->setSkipSyntaxCheck(
true);
448 $pi->setDisableHtmlAutoComplete(
false);
449 $pi->setRequired(
true);
452 require_once
'Services/Captcha/classes/class.ilCaptchaUtil.php';
453 if (ilCaptchaUtil::isActiveForLogin()) {
454 require_once
'Services/Captcha/classes/class.ilCaptchaInputGUI.php';
455 $captcha =
new ilCaptchaInputGUI($this->lng->txt(
'captcha_code'),
'captcha_code');
456 $captcha->setRequired(
true);
457 $form->addItem($captcha);
460 $form->addCommandButton(
"doStandardAuthentication", $this->lng->txt(
"log_in"));
470 $this->
getLogger()->debug(
'Trying shibboleth authentication');
472 include_once
'./Services/AuthShibboleth/classes/class.ilAuthFrontendCredentialsShibboleth.php';
474 $credentials->initFromRequest();
476 include_once
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
478 $provider = $provider_factory->getProviderByAuthMode($credentials,
AUTH_SHIBBOLETH);
480 include_once
'./Services/Authentication/classes/class.ilAuthStatus.php';
483 include_once
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
486 $frontend = $frontend_factory->getFrontend(
493 $frontend->authenticate();
495 switch ($status->getStatus()) {
498 include_once
'./Services/Init/classes/class.ilInitialisation.php';
499 ilInitialisation::redirectToStartingPage();
503 return $GLOBALS[
'ilCtrl']->redirect($this,
'showAccountMigration');
507 $GLOBALS[
'ilCtrl']->redirect($this,
'showLoginPage');
523 $this->
getLogger()->debug(
'Trying cas authentication');
525 include_once
'./Services/CAS/classes/class.ilAuthFrontendCredentialsCAS.php';
528 include_once
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
530 $provider = $provider_factory->getProviderByAuthMode($credentials,
AUTH_CAS);
532 include_once
'./Services/Authentication/classes/class.ilAuthStatus.php';
535 include_once
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
538 $frontend = $frontend_factory->getFrontend(
545 $frontend->authenticate();
546 switch ($status->getStatus()) {
548 $this->
getLogger()->debug(
'Authentication successful.');
549 ilInitialisation::redirectToStartingPage();
565 $this->
getLogger()->debug(
'Trying lti authentication');
568 $credentials->initFromRequest();
571 $provider = $provider_factory->getProviderByAuthMode($credentials,
AUTH_PROVIDER_LTI);
577 $frontend = $frontend_factory->getFrontend(
584 $frontend->authenticate();
586 switch ($status->getStatus()) {
589 ilInitialisation::redirectToStartingPage();
593 return $GLOBALS[
'ilCtrl']->redirect($this,
'showAccountMigration');
597 $GLOBALS[
'ilCtrl']->redirect($this,
'showLoginPage');
612 $this->
getLogger()->debug(
'Trying apache authentication');
614 $credentials = new \ilAuthFrontendCredentialsApache($this->httpRequest, $this->ctrl);
615 $credentials->initFromRequest();
617 $provider_factory = new \ilAuthProviderFactory();
618 $provider = $provider_factory->getProviderByAuthMode($credentials,
AUTH_APACHE);
622 $frontend_factory = new \ilAuthFrontendFactory();
624 $frontend = $frontend_factory->getFrontend(
631 $frontend->authenticate();
633 switch ($status->getStatus()) {
634 case \ilAuthStatus::STATUS_AUTHENTICATED:
635 if ($credentials->hasValidTargetUrl()) {
637 'Authentication successful. Redirecting to starting page: %s',
638 $credentials->getTargetUrl()
640 $this->ctrl->redirectToURL($credentials->getTargetUrl());
643 'Authentication successful, but no valid target URL given. Redirecting to default starting page.'
645 \ilInitialisation::redirectToStartingPage();
649 case \ilAuthStatus::STATUS_ACCOUNT_MIGRATION_REQUIRED:
650 $this->ctrl->redirect($this,
'showAccountMigration');
653 case \ilAuthStatus::STATUS_AUTHENTICATION_FAILED:
656 $this->ctrl->getLinkTarget($this,
'showLoginPage',
'',
false,
false),
673 if ($form->checkInput()) {
674 $this->
getLogger()->debug(
'Trying to authenticate user.');
676 include_once
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendCredentials.php';
678 $credentials->setUsername($form->getInput(
'username'));
679 $credentials->setPassword($form->getInput(
'password'));
680 $credentials->setCaptchaCode($form->getInput(
'captcha_code'));
683 include_once
'./Services/Authentication/classes/class.ilAuthModeDetermination.php';
686 $credentials->setAuthMode($form->getInput(
'auth_mode'));
689 include_once
'./Services/Authentication/classes/Provider/class.ilAuthProviderFactory.php';
691 $providers = $provider_factory->getProviders($credentials);
693 include_once
'./Services/Authentication/classes/class.ilAuthStatus.php';
696 include_once
'./Services/Authentication/classes/Frontend/class.ilAuthFrontendFactory.php';
699 $frontend = $frontend_factory->getFrontend(
706 $frontend->authenticate();
708 switch ($status->getStatus()) {
711 include_once
'./Services/Init/classes/class.ilInitialisation.php';
712 ilInitialisation::redirectToStartingPage();
720 return $GLOBALS[
'ilCtrl']->redirect($this,
'showAccountMigration');
764 return $page_editor_html;
776 if (strlen($page_editor_html)) {
778 return $page_editor_html;
781 $loginSettings =
new ilSetting(
"login_settings");
782 $information = $loginSettings->get(
"login_message_" .
$lng->getLangKey());
784 if (strlen(trim($information))) {
785 $tpl->setVariable(
"TXT_LOGIN_INFORMATION", $information);
787 return $page_editor_html;
803 $tpl =
new ilTemplate(
'tpl.login_form_cas.html',
true,
true,
'Services/Init');
804 $tpl->setVariable(
"TXT_CAS_LOGIN",
$lng->txt(
"login_to_ilias_via_cas"));
806 $tpl->setVariable(
"TXT_CAS_LOGIN_INSTRUCTIONS",
$ilSetting->get(
"cas_login_instructions"));
807 $this->ctrl->setParameter($this,
"forceCASLogin",
"1");
808 $tpl->setVariable(
"TARGET_CAS_LOGIN", $this->ctrl->getLinkTarget($this,
"doCasAuthentication"));
809 $this->ctrl->setParameter($this,
"forceCASLogin",
"");
815 '[list-cas-login-form]',
819 return $page_editor_html;
836 $tpl =
new ilTemplate(
'tpl.login_form_shibboleth.html',
true,
true,
'Services/Init');
838 $tpl->setVariable(
'SHIB_FORMACTION',
'./shib_login.php');
839 $federation_name =
$ilSetting->get(
"shib_federation_name");
840 $admin_mail =
' <a href="mailto:' .
$ilSetting->get(
"admin_email") .
'">ILIAS ' .
$lng->txt(
843 if (
$ilSetting->get(
"shib_hos_type") ==
'external_wayf') {
844 $tpl->setCurrentBlock(
"shibboleth_login");
845 $tpl->setVariable(
"TXT_SHIB_LOGIN",
$lng->txt(
"login_to_ilias_via_shibboleth"));
846 $tpl->setVariable(
"IL_TARGET",
$_GET[
"target"]);
847 $tpl->setVariable(
"TXT_SHIB_FEDERATION_NAME",
$ilSetting->get(
"shib_federation_name"));
848 $tpl->setVariable(
"TXT_SHIB_LOGIN_BUTTON",
$ilSetting->get(
"shib_login_button"));
850 "TXT_SHIB_LOGIN_INSTRUCTIONS",
852 $lng->txt(
"shib_general_login_instructions"),
857 $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS",
$ilSetting->get(
"shib_login_instructions"));
858 $tpl->parseCurrentBlock();
859 } elseif (
$ilSetting->get(
"shib_hos_type") ==
'embedded_wayf') {
860 $tpl->setCurrentBlock(
"shibboleth_custom_login");
861 $customInstructions = stripslashes(
$ilSetting->get(
"shib_login_instructions"));
862 $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS", $customInstructions);
863 $tpl->parseCurrentBlock();
865 $tpl->setCurrentBlock(
"shibboleth_wayf_login");
866 $tpl->setVariable(
"TXT_SHIB_LOGIN",
$lng->txt(
"login_to_ilias_via_shibboleth"));
867 $tpl->setVariable(
"TXT_SHIB_FEDERATION_NAME",
$ilSetting->get(
"shib_federation_name"));
868 $tpl->setVariable(
"TXT_SELECT_HOME_ORGANIZATION", sprintf(
$lng->txt(
"shib_select_home_organization"),
$ilSetting->get(
"shib_federation_name")));
869 $tpl->setVariable(
"TXT_CONTINUE",
$lng->txt(
"btn_next"));
870 $tpl->setVariable(
"TXT_SHIB_HOME_ORGANIZATION",
$lng->txt(
"shib_home_organization"));
872 "TXT_SHIB_LOGIN_INSTRUCTIONS",
874 $lng->txt(
"shib_general_wayf_login_instructions"),
878 $tpl->setVariable(
"TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS",
$ilSetting->get(
"shib_login_instructions"));
880 require_once
"./Services/AuthShibboleth/classes/class.ilShibbolethWAYF.php";
883 $tpl->setVariable(
"TXT_SHIB_INVALID_SELECTION", $WAYF->showNotice());
884 $tpl->setVariable(
"SHIB_IDP_LIST", $WAYF->generateSelection());
885 $tpl->setVariable(
"ILW_TARGET",
$_GET[
"target"]);
886 $tpl->parseCurrentBlock();
892 return $page_editor_html;
907 if (!strlen($page_editor_html)) {
908 $tpl->setVariable($fallback_tplvar, $element_html);
909 return $page_editor_html;
912 if (!stristr($page_editor_html, $placeholder)) {
913 $tpl->setVariable($fallback_tplvar, $element_html);
914 return $page_editor_html;
916 return str_replace($placeholder, $element_html, $page_editor_html);
927 include_once
'./Services/Authentication/classes/class.ilAuthLoginPageEditorSettings.php';
929 $active_lang = $lpe->getIliasEditorLanguage(
$lng->getLangKey());
936 include_once
'./Services/COPage/classes/class.ilPageUtil.php';
944 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
945 $page_gui->setStyleId(0,
'auth');
947 $page_gui->setPresentationTitle(
"");
948 $page_gui->setTemplateOutput(
false);
949 $page_gui->setHeader(
"");
950 $ret = $page_gui->showPage();
967 $rtpl =
new ilTemplate(
'tpl.login_registration_links.html',
true,
true,
'Services/Init');
970 include_once
'Services/Registration/classes/class.ilRegistrationSettings.php';
972 $rtpl->setCurrentBlock(
"new_registration");
973 $rtpl->setVariable(
"REGISTER",
$lng->txt(
"registration"));
976 $this->ctrl->getLinkTargetByClass(
"ilaccountregistrationgui",
"")
978 $rtpl->parseCurrentBlock();
982 $rtpl->setCurrentBlock(
"password_assistance");
983 $rtpl->setVariable(
"FORGOT_PASSWORD",
$lng->txt(
"forgot_password"));
984 $rtpl->setVariable(
"FORGOT_USERNAME",
$lng->txt(
"forgot_username"));
986 "CMD_FORGOT_PASSWORD",
987 $this->ctrl->getLinkTargetByClass(
"ilpasswordassistancegui",
"")
990 "CMD_FORGOT_USERNAME",
991 $this->ctrl->getLinkTargetByClass(
"ilpasswordassistancegui",
"showUsernameAssistanceForm")
993 $rtpl->setVariable(
"LANG_ID",
$lng->getLangKey());
994 $rtpl->parseCurrentBlock();
998 $ilAccess->checkAccessOfUser(ANONYMOUS_USER_ID,
"read",
"", ROOT_FOLDER_ID)) {
999 $rtpl->setCurrentBlock(
"homelink");
1000 $rtpl->setVariable(
"CLIENT_ID",
"?client_id=" .
$_COOKIE[
"ilClientId"] .
"&lang=" .
$lng->getLangKey());
1001 $rtpl->setVariable(
"TXT_HOME",
$lng->txt(
"home"));
1002 $rtpl->parseCurrentBlock();
1006 $rtpl->setCurrentBlock(
"client_list");
1007 $rtpl->setVariable(
"TXT_CLIENT_LIST",
$lng->txt(
"to_client_list"));
1008 $rtpl->setVariable(
"CMD_CLIENT_LIST", $this->ctrl->getLinkTarget($this,
"showClientList"));
1009 $rtpl->parseCurrentBlock();
1016 '[list-registration-link]',
1017 'REG_PWD_CLIENT_LINKS'
1028 if (!$this->
user->getId()) {
1029 $this->
user->setId(ANONYMOUS_USER_ID);
1033 $utpl =
new ilTemplate(
'tpl.login_terms_of_service_link.html',
true,
true,
'Services/Init');
1034 $utpl->setVariable(
'TXT_TERMS_OF_SERVICE', $this->lng->txt(
'usr_agreement'));
1035 $utpl->setVariable(
'LINK_TERMS_OF_SERVICE', $this->ctrl->getLinkTarget($this,
'showTermsOfService'));
1041 '[list-user-agreement]',
1050 '[list-user-agreement]',
1064 '[list-language-selection] ',
1065 '[list-registration-link]',
1066 '[list-user-agreement]',
1067 '[list-login-form]',
1068 '[list-cas-login-form]',
1069 '[list-saml-login]',
1070 '[list-shibboleth-login-form]'
1072 array(
'',
'',
'',
'',
'',
'',
''),
1083 $tpl = self::initStartUpTemplate(
'tpl.login_account_migration.html');
1086 $form->setFormAction($this->ctrl->getFormAction($this,
'migrateAccount'));
1088 $form->setTitle($this->lng->txt(
'auth_account_migration'));
1089 $form->addCommandButton(
'migrateAccount', $this->lng->txt(
'save'));
1090 $form->addCommandButton(
'showLogin', $this->lng->txt(
'cancel'));
1092 $rad =
new ilRadioGroupInputGUI($this->lng->txt(
'auth_account_migration_name'),
'account_migration');
1096 $this->lng->txt(
'auth_account_migration_keep'),
1097 static::ACCOUNT_MIGRATION_MIGRATE,
1098 $this->lng->txt(
'auth_info_migrate')
1101 $user->setRequired(
true);
1103 (
string) ($this->httpRequest->getParsedBody()[
'mig_username'] ??
'')
1106 $user->setMaxLength(128);
1107 $keep->addSubItem(
$user);
1110 $pass->setRetype(
false);
1111 $pass->setRequired(
true);
1113 (
string) ($this->httpRequest->getParsedBody()[
'mig_password'] ??
'')
1116 $pass->setMaxLength(128);
1117 $keep->addSubItem(
$pass);
1118 $rad->addOption($keep);
1121 $this->lng->txt(
'auth_account_migration_new'),
1122 static::ACCOUNT_MIGRATION_NEW,
1123 $this->lng->txt(
'auth_info_add')
1125 $rad->addOption($new);
1127 $form->addItem($rad);
1129 $tpl->setVariable(
'MIG_FORM', $form->getHTML());
1144 if (!isset($this->httpRequest->getParsedBody()[
'account_migration'])) {
1146 $this->lng->txt(
'select_one')
1152 ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] === self::ACCOUNT_MIGRATION_MIGRATE) &&
1154 !isset($this->httpRequest->getParsedBody()[
'mig_username']) ||
1155 !is_string($this->httpRequest->getParsedBody()[
'mig_username']) ||
1156 0 === strlen($this->httpRequest->getParsedBody()[
'mig_username']) ||
1157 !isset($this->httpRequest->getParsedBody()[
'mig_password']) ||
1158 !is_string($this->httpRequest->getParsedBody()[
'mig_password'])
1162 $this->lng->txt(
'err_wrong_login')
1167 if ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] == self::ACCOUNT_MIGRATION_MIGRATE) {
1169 } elseif ((
int) $this->httpRequest->getParsedBody()[
'account_migration'] == static::ACCOUNT_MIGRATION_NEW) {
1185 $this->logger->debug(
'Using provider: ' . get_class($provider) .
' for further processing.');
1191 $frontend = $frontend_factory->getFrontend(
1198 if ($frontend->migrateAccountNew()) {
1199 ilInitialisation::redirectToStartingPage();
1203 $this->ctrl->redirect($this,
'showAccountMigration');
1213 $this->logger->debug(
'Starting account migration for user: ' . (
string)
ilSession::get(
'mig_ext_account'));
1216 $credentials->setUsername((
string)
$_POST[
'mig_username']);
1217 $credentials->setPassword((
string)
$_POST[
'mig_password']);
1220 $provider = $provider_factory->getProviderByAuthMode($credentials,
AUTH_LOCAL);
1226 $frontend = $frontend_factory->getFrontend(
1233 $frontend->authenticate();
1235 switch ($status->getStatus()) {
1237 $this->
getLogger()->debug(
'Account migration: authentication successful for ' . (
string) $_POST[
'mig_username']);
1239 $provider = $provider_factory->getProviderByAuthMode(
1244 $frontend = $frontend_factory->getFrontend(
1251 $frontend->migrateAccount(
$GLOBALS[
'DIC'][
'ilAuthSession'])
1253 ilInitialisation::redirectToStartingPage();
1256 $this->ctrl->redirect($this,
'showAccountMigration');
1261 $this->
getLogger()->info(
'Account migration failed for user ' . (
string) $_POST[
'mig_username']);
1277 $tpl = self::initStartUpTemplate(
"tpl.logout.html");
1282 $tpl->setCurrentBlock(
"homelink");
1283 $tpl->setVariable(
"CLIENT_ID",
"?client_id=" .
$client_id .
"&lang=" .
$lng->getLangKey());
1284 $tpl->setVariable(
"TXT_HOME",
$lng->txt(
"home"));
1285 $tpl->parseCurrentBlock();
1289 $tpl->setCurrentBlock(
"client_list");
1290 $tpl->setVariable(
"TXT_CLIENT_LIST",
$lng->txt(
"to_client_list"));
1291 $this->ctrl->setParameter($this,
"client_id",
$client_id);
1294 $this->ctrl->getLinkTarget($this,
"showClientList")
1296 $tpl->parseCurrentBlock();
1297 $this->ctrl->setParameter($this,
"client_id",
"");
1300 $tpl->setVariable(
"TXT_PAGEHEADLINE",
$lng->txt(
"logout"));
1301 $tpl->setVariable(
"TXT_LOGOUT_TEXT",
$lng->txt(
"logout_text"));
1302 $tpl->setVariable(
"TXT_LOGIN",
$lng->txt(
"login_to_ilias"));
1303 $tpl->setVariable(
"CLIENT_ID",
"?client_id=" .
$client_id .
"&cmd=force_login&lang=" .
$lng->getLangKey());
1321 $ilAppEventHandler =
$DIC[
'ilAppEventHandler'];
1323 $ilAppEventHandler->raise(
1324 'Services/Authentication',
1327 'user_id' => $this->
user->getId()
1331 $user_language =
$user->getLanguage();
1332 $had_external_authentication =
ilSession::get(
'used_external_auth');
1335 $GLOBALS[
'DIC'][
'ilAuthSession']->logout();
1337 $GLOBALS[
'ilAppEventHandler']->raise(
1338 'Services/Authentication',
1341 'username' => $this->
user->getLogin()
1345 if ((
int) $this->
user->getAuthMode(
true) ==
AUTH_SAML && $had_external_authentication) {
1346 $this->logger->info(
'Redirecting user to SAML logout script');
1347 $this->ctrl->redirectToURL(
'saml.php?action=logout&logout_url=' . urlencode(
ILIAS_HTTP_PATH .
'/login.php'));
1355 $this->ctrl->setParameter($this,
'client_id',
$client_id);
1356 $this->ctrl->setParameter($this,
'lang', $user_language);
1357 $this->ctrl->redirect($this,
'showLogout');
1375 $tpl->setVariable(
"PAGETITLE",
$lng->txt(
"clientlist_clientlist"));
1378 $tpl = self::initStartUpTemplate(
"tpl.client_list.html");
1381 $tpl->addBlockfile(
"CLIENT_LIST",
"client_list",
"tpl.table.html");
1384 $tpl->addBlockfile(
"TBL_CONTENT",
"tbl_content",
"tpl.obj_tbl_rows.html");
1387 require_once(
"setup/classes/class.ilClientList.php");
1388 require_once(
"setup/classes/class.ilClient.php");
1389 require_once(
"./Services/Table/classes/class.ilTableGUI.php");
1390 $clientlist = new \ilClientList();
1391 $list = $clientlist->getClients();
1393 if (count($list) == 0) {
1394 header(
"Location: ./setup/setup.php");
1398 $hasPublicSection =
false;
1399 foreach ($list as $key =>
$client) {
1401 if (
$client->checkDatabaseExists(
true)) {
1403 if (
$client->ini->readVariable(
"client",
"access") and
$client->getSetting(
"setup_ok")) {
1404 $this->ctrl->setParameter($this,
"client_id", $key);
1407 $tmp[] =
"<a href=\"" .
"login.php?cmd=force_login&client_id=" . urlencode($key) .
"\">" .
$lng->txt(
"clientlist_login_page") .
"</a>";
1409 if (
$client->getSetting(
'pub_section')) {
1410 $hasPublicSection =
true;
1411 $tmp[] =
"<a href=\"" .
"ilias.php?baseClass=ilRepositoryGUI&client_id=" . urlencode($key) .
"\">" .
$lng->txt(
"clientlist_start_page") .
"</a>";
1425 if ($hasPublicSection) {
1426 $tbl->setTitle(
$lng->txt(
"clientlist_available_clients"));
1427 $tbl->setHeaderNames(array(
$lng->txt(
"clientlist_installation_name"),
$lng->txt(
"clientlist_login"),
$lng->txt(
"clientlist_public_access")));
1428 $tbl->setHeaderVars(array(
"name",
"index",
"login"));
1429 $tbl->setColumnWidth(array(
"50%",
"25%",
"25%"));
1431 $tbl->setTitle(
$lng->txt(
"clientlist_available_clients"));
1432 $tbl->setHeaderNames(array(
$lng->txt(
"clientlist_installation_name"),
$lng->txt(
"clientlist_login"),
''));
1433 $tbl->setHeaderVars(array(
"name",
"login",
''));
1434 $tbl->setColumnWidth(array(
"70%",
"25%",
'1px'));
1438 $tbl->setOrderColumn(
$_GET[
"sort_by"],
"name");
1439 $tbl->setOrderDirection(
$_GET[
"sort_order"]);
1440 $tbl->setLimit(
$_GET[
"limit"]);
1441 $tbl->setOffset(
$_GET[
"offset"]);
1444 $tbl->setData(
$data);
1446 $tbl->disable(
"icon");
1447 $tbl->disable(
"numinfo");
1448 $tbl->disable(
"sort");
1449 $tbl->disable(
"footer");
1452 $html_for_nothing = $tbl->render();
1465 $str =
"<p style=\"margin:15px;\">
1466 You need to enable Session Cookies in your Browser to use ILIAS.
1469 <br/>Tools -> Options -> Privacy -> Cookies
1470 <br/>Enable 'Allow sites to set cookies' and activate option 'Keep
1471 <br/>cookies' auf 'until I close Firefox'
1473 <br/><b>Mozilla/Netscape</b>
1474 <br/>Edit -> Preferences -> Privacy&Security -> Cookies
1475 <br/>Go to 'Cookie Lifetime Policy' and check option 'Accept for current
1478 <br/><b>Internet Explorer</b>
1479 <br/>Tools -> Internet Options -> Privacy -> Advanced
1480 <br/>- Check 'Override automatic cookie handling'
1481 <br/>- Check 'Always allow session cookies'
1483 $tpl->setVariable(
"CONTENT", $str);
1484 $tpl->printToStdout();
1500 $back_to_login = (
'getAcceptance' != $this->ctrl->getCmd());
1502 if (!$this->
user->getId()) {
1503 $this->
user->setId(ANONYMOUS_USER_ID);
1506 $tpl = self::initStartUpTemplate(
'tpl.view_terms_of_service.html', $back_to_login, !$back_to_login);
1509 if ($handleDocument) {
1510 $document = $this->termsOfServiceEvaluation->document();
1511 if (
'getAcceptance' == $this->ctrl->getCmd()) {
1512 if (isset(
$_POST[
'status']) &&
'accepted' ==
$_POST[
'status']) {
1513 $helper = new \ilTermsOfServiceHelper();
1515 $helper->trackAcceptance($this->
user, $document);
1526 $tpl->setVariable(
'FORM_ACTION', $this->ctrl->getFormAction($this, $this->ctrl->getCmd()));
1528 $tpl->setVariable(
'ACCEPT_TERMS_OF_SERVICE', $this->lng->txt(
'accept_usr_agreement'));
1529 $tpl->setVariable(
'TXT_SUBMIT', $this->lng->txt(
'submit'));
1532 $tpl->setPermanentLink(
'usr',
null,
'agreement');
1533 $tpl->setVariable(
'TERMS_OF_SERVICE_CONTENT', $document->content());
1536 'TERMS_OF_SERVICE_CONTENT',
1538 $this->lng->txt(
'no_agreement_description'),
1555 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isValid()) {
1556 include_once
'./Services/Init/classes/class.ilInitialisation.php';
1557 ilInitialisation::redirectToStartingPage();
1563 !isset(
$_GET[
"client_id"]) &&
1564 (
$_GET[
"cmd"] ==
"") &&
1581 global $objDefinition, $ilPluginAdmin,
$ilUser;
1583 $access =
$DIC->access();
1586 if (is_object($ilPluginAdmin)) {
1588 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE,
"UIComponent",
"uihk");
1591 foreach ($pl_names as $pl) {
1593 $gui_class = $ui_plugin->getUIClassInstance();
1594 $resp = $gui_class->checkGotoHook($a_target);
1595 if (
$resp[
"target"] !==
false) {
1596 $a_target =
$resp[
"target"];
1602 if ($a_target ==
"") {
1606 $t_arr = explode(
"_", $a_target);
1609 if (
$type ==
"git") {
1617 $class = $objDefinition->getClassName(
$type);
1623 $full_class =
"ilObj" . $class .
"Access";
1624 include_once(
$location .
"/class." . $full_class .
".php");
1626 $ret = call_user_func(array($full_class,
"_checkGoto"), $a_target);
1630 !stristr($a_target,
"_wsp") &&
1631 $ilUser->getId() != ANONYMOUS_USER_ID &&
1632 !$objDefinition->isAdministrationObject(
$type) &&
1633 $objDefinition->isRBACObject(
$type) &&
1635 global $tree, $rbacsystem, $ilAccess;
1638 if ($t_arr[0] ==
"pg") {
1639 if (isset($t_arr[2])) {
1640 $ref_id = $t_arr[2];
1645 $ref_id = array_shift($ref_id);
1649 $ref_id = $t_arr[1];
1652 include_once
"Services/Membership/classes/class.ilParticipants.php";
1653 $block_obj = array();
1656 $path = $tree->getPathId($ref_id);
1658 foreach ($path as $path_ref_id) {
1659 $redirect_infopage =
false;
1660 $add_member_role =
false;
1667 !$access->doActivationCheck(
'read',
'', $path_ref_id,
$ilUser->getId(), $pobj_id, $ptype) ||
1668 !$access->doStatusCheck(
'read',
'', $path_ref_id,
$ilUser->getId(), $pobj_id, $ptype)
1672 } elseif ($ptype ==
"crs") {
1674 include_once
"Modules/Course/classes/class.ilCourseParticipant.php";
1676 if (!$participants->isAssigned()) {
1678 include_once
"Modules/Course/classes/class.ilObjCourse.php";
1681 $block_obj[] = $path_ref_id;
1682 $add_member_role =
true;
1684 $redirect_infopage =
true;
1687 } elseif ($ptype ==
"grp") {
1689 include_once
"Modules/Group/classes/class.ilGroupParticipants.php";
1692 include_once
"Modules/Group/classes/class.ilObjGroup.php";
1694 if ($group_obj->isRegistrationEnabled()) {
1695 $block_obj[] = $path_ref_id;
1696 $add_member_role =
true;
1698 $redirect_infopage =
true;
1704 if ($add_member_role) {
1706 $rbacsystem->resetPACache(
$ilUser->getId(), $path_ref_id);
1707 if (!$rbacsystem->checkAccess(
"join", $path_ref_id)) {
1708 $redirect_infopage =
true;
1710 $rbacsystem->addTemporaryRole(
1718 if ($redirect_infopage) {
1719 if ($rbacsystem->checkAccess(
"visible", $path_ref_id)) {
1721 "&ref_id=" . $path_ref_id .
"&cmd=infoScreen");
1730 $rbacsystem->resetPACache(
$ilUser->getId(), $ref_id);
1731 if ($rbacsystem->checkAccess(
"read", $ref_id) &&
sizeof($block_obj)) {
1737 $_SESSION[
"pending_goto"] =
"goto.php?target=" . $a_target;
1741 "&ref_id=" . array_shift($block_obj));
1748 public function confirmRegistration()
1752 if (!isset(
$_GET[
'rh']) || !strlen(trim(
$_GET[
'rh']))) {
1753 $this->ctrl->redirectToURL(
'./login.php?cmd=force_login®_confirmation_msg=reg_confirmation_hash_not_passed');
1762 $user->setActive(
true);
1764 if ($oRegSettings->passwordGenerationEnabled()) {
1768 $user->setLastPasswordChangeTS(time());
1772 $target =
$user->getPref(
'reg_target');
1773 if (strlen($target) > 0) {
1775 $_GET[
'target'] = $target;
1783 $accountMail->withEmailConfirmationRegistrationMode()->send(
$user,
$password);
1785 $this->ctrl->redirectToURL(sprintf(
1786 './login.php?cmd=force_login®_confirmation_msg=reg_account_confirmation_successful&lang=%s',
1787 $user->getLanguage()
1791 $soap_client->setResponseTimeout(1);
1792 $soap_client->enableWSDL(
true);
1793 $soap_client->init();
1795 $this->logger->info(
'Triggered soap call (background process) for deletion of inactive user objects with expired confirmation hash values (dual opt in) ...');
1798 'deleteExpiredDualOptInUserObjects',
1801 $exception->getCode()
1805 $this->ctrl->redirectToURL(sprintf(
1806 './login.php?cmd=force_login®_confirmation_msg=%s',
1807 $exception->getMessage()
1810 $this->ctrl->redirectToURL(sprintf(
1811 './login.php?cmd=force_login®_confirmation_msg=%s',
1812 $exception->getMessage()
1823 public static function initStartUpTemplate($a_tmpl, $a_show_back =
false, $a_show_logout =
false)
1835 $tpl->addBlockfile(
'CONTENT',
'content',
'tpl.startup_screen.html',
'Services/Init');
1837 $view_title =
$lng->txt(
'login_to_ilias');
1842 $tpl->setCurrentBlock(
'link_item_bl');
1843 $tpl->setVariable(
'LINK_TXT', $view_title);
1844 $tpl->setVariable(
'LINK_URL',
'login.php?cmd=force_login&' .
$param);
1845 $tpl->parseCurrentBlock();
1847 include_once
'./Services/Init/classes/class.ilPublicSectionSettings.php';
1849 $ilAccess->checkAccessOfUser(ANONYMOUS_USER_ID,
'read',
'', ROOT_FOLDER_ID)) {
1850 $tpl->setVariable(
'LINK_URL',
'index.php?' .
$param);
1851 $tpl->setVariable(
'LINK_TXT',
$lng->txt(
'home'));
1852 $tpl->parseCurrentBlock();
1854 } elseif ($a_show_logout) {
1855 $view_title =
$lng->txt(
'logout');
1856 $tpl->setCurrentBlock(
'link_item_bl');
1857 $tpl->setVariable(
'LINK_TXT', $view_title);
1859 $tpl->parseCurrentBlock();
1862 if (is_array($a_tmpl)) {
1863 $template_file = $a_tmpl[0];
1864 $template_dir = $a_tmpl[1];
1866 $template_file = $a_tmpl;
1867 $template_dir =
'Services/Init';
1870 $tpl->addBlockFile(
'STARTUP_CONTENT',
'startup_content', $template_file, $template_dir);
1872 PageContentProvider::setViewTitle($view_title);
1873 $short_title =
$ilSetting->get(
'short_inst_name');
1874 if (trim($short_title) ===
"") {
1875 $short_title =
'ILIAS';
1877 PageContentProvider::setShortTitle($short_title);
1879 $header_title = (string) ilObjSystemFolder::_getHeaderTitle();
1880 PageContentProvider::setTitle($header_title);
1891 require_once
'Services/Saml/classes/class.ilSamlIdp.php';
1892 require_once
'Services/Saml/classes/class.ilSamlSettings.php';
1895 $tpl =
new ilTemplate(
'tpl.login_form_saml.html',
true,
true,
'Services/Saml');
1898 if (isset(
$_GET[
'target'])) {
1902 $tpl->setVariable(
'SAML_SCRIPT_URL',
'./saml.php' . $return);
1904 $tpl->setVariable(
'LOGIN_TO_ILIAS_VIA_SAML',
$GLOBALS[
'DIC']->
language()->txt(
'login_to_ilias_via_saml'));
1905 $tpl->setVariable(
'TXT_SAML_LOGIN_TXT',
$GLOBALS[
'DIC']->
language()->txt(
'saml_login_form_txt'));
1906 $tpl->setVariable(
'TXT_SAML_LOGIN_INFO_TXT',
$GLOBALS[
'DIC']->
language()->txt(
'saml_login_form_info_txt'));
1912 '[list-saml-login]',
1917 return $page_editor_html;
1931 if ($oidc_settings->getActive()) {
1932 $tpl =
new ilTemplate(
'tpl.login_element.html',
true,
true,
'Services/OpenIdConnect');
1934 $lang->loadLanguageModule(
'auth');
1935 $tpl->setVariable(
'TXT_OIDCONNECT_HEADER',
$lang->txt(
'auth_oidc_login_element_info'));
1937 $target = empty(
$_GET[
'target']) ?
'' : (
'?target=' . (string)
$_GET[
'target']);
1938 switch ($oidc_settings->getLoginElementType()) {
1942 $tpl->setVariable(
'SCRIPT_OIDCONNECT_T',
ILIAS_HTTP_PATH .
'/openidconnect.php' . $target);
1943 $tpl->setVariable(
'TXT_OIDC', $oidc_settings->getLoginElemenText());
1947 $tpl->setVariable(
'SCRIPT_OIDCONNECT_I',
ILIAS_HTTP_PATH .
'/openidconnect.php' . $target);
1948 $tpl->setVariable(
'IMG_SOURCE', $oidc_settings->getImageFilePath());
1956 '[list-openid-connect-login]',
1957 'OPEN_ID_CONNECT_LOGIN_FORM'
1961 return $page_editor_html;
1971 $this->
getLogger()->debug(
'Trying openid connect authentication');
1974 $credentials->initFromRequest();
1983 $frontend = $frontend_factory->getFrontend(
1990 $frontend->authenticate();
1992 switch ($status->getStatus()) {
1995 include_once
'./Services/Init/classes/class.ilInitialisation.php';
1996 ilInitialisation::redirectToStartingPage();
2001 $GLOBALS[
'ilCtrl']->redirect($this,
'showLoginPage');
2018 $this->
getLogger()->debug(
'Trying saml authentication');
2020 $request =
$DIC->http()->request();
2021 $params = $request->getQueryParams();
2026 if (isset($params[
'action']) && $params[
'action'] ==
'logout') {
2027 $logout_url = isset($params[
'logout_url']) ? $params[
'logout_url'] :
'';
2029 $auth->logout($logout_url);
2032 if (isset($params[
'target']) && !isset($params[
'returnTo'])) {
2033 $params[
'returnTo'] = $params[
'target'];
2035 if (isset($params[
'returnTo'])) {
2036 $auth->storeParam(
'target', $params[
'returnTo']);
2041 if (!
$auth->isAuthenticated()) {
2043 if (!isset(
$_GET[
'idpentityid']) || !isset(
$_GET[
'saml_idp_id'])) {
2045 if (1 == count($activeIdps)) {
2046 $idp = current($activeIdps);
2047 $_GET[
'idpentityid'] = $idp->getEntityId();
2048 $_GET[
'saml_idp_id'] = $idp->getIdpId();
2051 'Found exactly one active IDP with id %s: %s',
2055 } elseif (0 == count($activeIdps)) {
2057 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'showLoginPage');
2065 $auth->storeParam(
'idpId', (
int)
$_GET[
'saml_idp_id']);
2067 'Stored relevant IDP id in session: %s',
2068 (
string)
$auth->getParam(
'idpId')
2077 $auth->protectResource();
2080 'SAML authentication successful, continuing with ILIAS internal authentication process...'
2083 $idpId = (int)
$auth->getParam(
'idpId');
2086 'Internal SAML IDP id fetched from session: %s',
2092 'No valid internal IDP id found (most probably due to IDP initiated SSO), trying fallback determination...'
2094 $authData =
$auth->getAuthDataArray();
2095 if (isset($authData[
'saml:sp:IdP'])) {
2098 'Searching active ILIAS IDP by entity id "%s" results in: %s',
2099 $authData[
'saml:sp:IdP'],
2104 'Could not execute fallback determination, no IDP entity ID found SAML authentication session data'
2113 $credentials->initFromRequest();
2122 $frontend = $frontend_factory->getFrontend(
2129 $frontend->authenticate();
2131 switch ($status->getStatus()) {
2134 return ilInitialisation::redirectToStartingPage();
2137 return $GLOBALS[
'DIC']->ctrl()->redirect($this,
'showAccountMigration');
2141 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'showLoginPage');
2159 self::initStartUpTemplate(array(
'tpl.saml_idp_selection.html',
'Services/Saml'));
2162 $renderer =
$DIC->ui()->renderer();
2164 $DIC->ctrl()->setTargetScript(
'saml.php');
2170 foreach ($idps as $idp) {
2171 $DIC->ctrl()->setParameter($this,
'saml_idp_id', $idp->getIdpId());
2172 $DIC->ctrl()->setParameter($this,
'idpentityid', urlencode($idp->getEntityId()));
2175 'idp_link' => $renderer->render(
$factory->link()->standard($idp->getEntityId(),
$DIC->ctrl()->getLinkTarget($this,
'doSamlAuthentication')))
2179 $table->setData($items);
2180 $this->mainTemplate->setVariable(
'CONTENT', $table->getHtml());
2182 $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
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.
showClientList()
show client list
const ACCOUNT_MIGRATION_NEW
jumpToPasswordAssistance()
jump to password assistance
showLogout()
Show logout screen.
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)
showTermsOfService()
Show terms of service.
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
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
if($_SERVER['argc']< 4) $client
Interface ilTermsOfServiceDocumentEvaluation.
static http()
Fetches the global http state from ILIAS.
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl