ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilStartUpGUI Class Reference

ilStartUpGUI: ilAccountRegistrationGUI, ilPasswordAssistanceGUI, ilLoginPageGUI, ilDashboardGUI ilStartUpGUI: ilMembershipOverviewGUI, ilDerivedTasksGUI, ilAccessibilityControlConceptGUI ilStartUpGUI: ilLogoutPageGUI More...

+ Inheritance diagram for ilStartUpGUI:
+ Collaboration diagram for ilStartUpGUI:

Public Member Functions

 __construct (?ilObjUser $user=null, ?ilGlobalTemplateInterface $mainTemplate=null, ?ServerRequestInterface $httpRequest=null)
 
 getUnsafeGetCommands ()
 This method must return a list of unsafe GET commands. More...
 
 getSafePostCommands ()
 This method must return a list of safe POST commands. More...
 
 executeCommand ()
 

Static Public Member Functions

static setForcedCommand (string $cmd)
 
static printToGlobalTemplate ($tpl)
 
static initStartUpTemplate ( $a_tmpl, bool $a_show_back=false, bool $a_show_logout=false)
 This method enriches the global template with some user interface elements (language selection, headlines, back buttons, ...) for public service views. More...
 
static logoutUrl (array $parameters=[])
 Return the logout URL with a valid CSRF token. More...
 

Protected Member Functions

 showLegalDocuments ()
 

Private Member Functions

 checkForcedCommand (string $cmd)
 
 mergeValuesTrafo ()
 
 saniziteArrayElementsTrafo ()
 
 initTargetFromQuery ()
 
 getLogger ()
 
 jumpToRegistration ()
 
 jumpToPasswordAssistance ()
 
 showLoginPageOrStartupPage ()
 
 showLoginPage (?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
 
 retrieveMessagesFromSession ()
 
 showCodeForm (?string $username=null, ?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
 
 buildCodeForm (?string $username=null)
 
 processCode ()
 
 buildStandardLoginForm ()
 
 doLTIAuthentication ()
 
 doApacheAuthentication ()
 
 doStandardAuthentication ()
 
 showLoginForm (string $page_editor_html, ?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
 
 showLoginInformation (string $page_editor_html, ilGlobalTemplateInterface $tpl)
 
 showShibbolethLoginForm (string $page_editor_html)
 
 substituteLoginPageElements ( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
 
 getAuthPageEditorHtml (AuthPageEditorContext $ipe_context)
 
 showRegistrationLinks (string $page_editor_html)
 
 showLegalDocumentsLinks (string $page_editor_html)
 
 purgePlaceholders (string $page_editor_html)
 
 buildAccountMigrationForm ()
 
 showAccountMigration (?ILIAS\UI\Component\Input\Container\Form\Form $form=null, string $message='')
 
 migrateAccount ()
 
 doMigrationNewAccount ()
 
 doMigration (array $migration_request_data)
 
 showLogout ()
 
 processIndexPHP ()
 
 showSamlLoginForm (string $page_editor_html)
 
 showOpenIdConnectLoginForm (string $page_editor_html)
 
 doOpenIdConnectAuthentication ()
 
 doSamlAuthentication ()
 
 showSamlIdpSelection (ilSamlAuth $auth, array $idps)
 

Private Attributes

const PROP_USERNAME = 'username'
 
const PROP_PASSWORD = 'password'
 
const PROP_AUTH_MODE = 'auth_mode'
 
const PROP_CODE = 'code'
 
const PROP_ACCOUNT_MIGRATION = 'account_migration'
 
const PROP_ACCOUNT_MIGRATION_NEW = 'account_migration_new'
 
const PROP_ACCOUNT_MIGRATION_MIGRATE = 'account_migration_migrate'
 
ilCtrlInterface $ctrl
 
ilLanguage $lng
 
ilLogger $logger
 
ilGlobalTemplateInterface $mainTemplate
 
ilObjUser $user
 
ServerRequestInterface $httpRequest
 
ILIAS DI Container $dic
 
ilAuthSession $authSession
 
ilAppEventHandler $eventHandler
 
ilSetting $setting
 
ilAccessHandler $access
 
RefineryFactory $refinery
 
HTTPServices $http
 
ilHelpGUI $help
 
ILIAS UI Factory $ui_factory
 
ILIAS UI Renderer $ui_renderer
 

Static Private Attributes

static string $forced_cmd = ''
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilStartUpGUI::__construct ( ?ilObjUser  $user = null,
?ilGlobalTemplateInterface  $mainTemplate = null,
?ServerRequestInterface  $httpRequest = null 
)

Definition at line 66 of file class.ilStartUpGUI.php.

References $DIC, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ilLoggerFactory\getLogger(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ILIAS\Repository\refinery(), and ILIAS\Repository\user().

70  {
71  global $DIC;
72 
73  $this->dic = $DIC;
74 
75  $this->user = $user ?? $DIC->user();
76  $this->mainTemplate = $mainTemplate ?? $DIC->ui()->mainTemplate();
77  $this->httpRequest = $httpRequest ?? $DIC->http()->request();
78  $this->ctrl = $DIC->ctrl();
79  $this->lng = $DIC->language();
80  $this->lng->loadLanguageModule('auth');
81  $this->logger = ilLoggerFactory::getLogger('init');
82  $this->authSession = $DIC['ilAuthSession'];
83  $this->eventHandler = $DIC->event();
84  $this->setting = $DIC->settings();
85  $this->access = $DIC->access();
86  $this->help = $DIC->help();
87  $this->http = $DIC->http();
88  $this->refinery = $DIC->refinery();
89  $this->ui_factory = $DIC->ui()->factory();
90  $this->ui_renderer = $DIC->ui()->renderer();
91 
92  $this->ctrl->saveParameter($this, ['rep_ref_id', 'lang', 'target', 'client_id']);
93  $this->user->setLanguage($this->lng->getLangKey());
94  $this->help->setScreenIdComponent('init');
95  }
static getLogger(string $a_component_id)
Get component logger.
ilGlobalTemplateInterface $mainTemplate
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:26
ServerRequestInterface $httpRequest
mainTemplate()
+ Here is the call graph for this function:

Member Function Documentation

◆ buildAccountMigrationForm()

ilStartUpGUI::buildAccountMigrationForm ( )
private

Definition at line 1021 of file class.ilStartUpGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), mergeValuesTrafo(), ILIAS\Repository\refinery(), saniziteArrayElementsTrafo(), and ILIAS\UI\Implementation\Component\Input\ViewControl\withAdditionalTransformation().

Referenced by migrateAccount().

1022  {
1023  $field_factory = $this->ui_factory->input()->field();
1024 
1025  $keep = $field_factory->group(
1026  [
1027  self::PROP_USERNAME => $field_factory->text($this->lng->txt('login'))->withRequired(true),
1028  self::PROP_PASSWORD => $field_factory
1029  ->password($this->lng->txt('password'))
1030  ->withRequired(true)
1031  ->withRevelation(true)
1032  ->withAdditionalTransformation(
1033  $this->refinery->custom()->transformation(
1034  static function (ILIAS\Data\Password $value): string {
1035  return $value->toString();
1036  }
1037  )
1038  ),
1039  ],
1040  $this->lng->txt('auth_account_migration_keep'),
1041  $this->lng->txt('auth_info_migrate')
1042  );
1043 
1044  $new = $field_factory->group(
1045  [],
1046  $this->lng->txt('auth_account_migration_new'),
1047  $this->lng->txt('auth_info_add')
1048  );
1049 
1050  $fields = [
1051  self::PROP_ACCOUNT_MIGRATION => $field_factory->switchableGroup(
1052  [
1053  self::PROP_ACCOUNT_MIGRATION_MIGRATE => $keep,
1054  self::PROP_ACCOUNT_MIGRATION_NEW => $new,
1055  ],
1056  $this->lng->txt('auth_account_migration_name')
1057  )->withRequired(true)->withValue(self::PROP_ACCOUNT_MIGRATION_MIGRATE)
1058  ];
1059 
1060  $sections = [$field_factory->section($fields, $this->lng->txt('auth_account_migration'))];
1061 
1062  return $this->ui_factory->input()
1063  ->container()
1064  ->form()
1065  ->standard($this->ctrl->getFormAction($this, 'migrateAccount'), $sections)
1066  ->withDedicatedName('login_form')
1067  ->withSubmitLabel($this->lng->txt('save'))
1070  }
Interface Observer Contains several chained tasks and infos about them.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildCodeForm()

ilStartUpGUI::buildCodeForm ( ?string  $username = null)
private

Definition at line 399 of file class.ilStartUpGUI.php.

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), mergeValuesTrafo(), null, saniziteArrayElementsTrafo(), and ILIAS\UI\Implementation\Component\Input\ViewControl\withAdditionalTransformation().

Referenced by doStandardAuthentication(), and processCode().

400  {
401  $this->lng->loadLanguageModule('auth');
402 
403  $field_factory = $this->ui_factory->input()->field();
404 
405  $username_field = $field_factory
406  ->hidden()
407  ->withRequired(true);
408  if ($username !== null) {
409  $username_field = $username_field->withValue($username);
410  }
411 
412  return $this->ui_factory
413  ->input()
414  ->container()
415  ->form()
416  ->standard(
417  $this->ctrl->getFormAction($this, 'processCode'),
418  [
419  $field_factory->section(
420  [
421  self::PROP_CODE => $field_factory
422  ->text(
423  $this->lng->txt('auth_account_code'),
424  $this->lng->txt('auth_account_code_info')
425  )
426  ->withRequired(true),
427  // #11658
428  self::PROP_USERNAME => $username_field,
429  ],
430  $this->lng->txt('auth_account_code_title'),
431  ),
432  ]
433  )
434  ->withSubmitLabel($this->lng->txt('send'))
437  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildStandardLoginForm()

ilStartUpGUI::buildStandardLoginForm ( )
private

Definition at line 518 of file class.ilStartUpGUI.php.

References $lng, ilAuthModeDetermination\_getInstance(), ilAuthUtils\_getMultipleAuthModeOptions(), ilAuthUtils\_hasMultipleAuthenticationMethods(), ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), mergeValuesTrafo(), ILIAS\Repository\refinery(), saniziteArrayElementsTrafo(), and ILIAS\UI\Implementation\Component\Input\ViewControl\withAdditionalTransformation().

Referenced by doStandardAuthentication().

519  {
520  $field_factory = $this->ui_factory->input()->field();
521 
522  $fields = [];
524  if (ilAuthUtils::_hasMultipleAuthenticationMethods() && $det->isManualSelection()) {
525  $auth_mode = $field_factory->radio($this->lng->txt('auth_selection'))->withRequired(true);
526  $visible_auth_methods = [];
527  foreach (ilAuthUtils::_getMultipleAuthModeOptions($this->lng) as $key => $option) {
528  if (isset($option['hide_in_ui']) && $option['hide_in_ui']) {
529  continue;
530  }
531 
532  $auth_mode = $auth_mode->withOption((string) $key, $option['txt']);
533 
534  if (isset($option['checked'])) {
535  $auth_mode = $auth_mode->withValue($key);
536  }
537  $visible_auth_methods[] = $key;
538  }
539 
540  if (count($visible_auth_methods) === 1) {
541  $auth_mode = $field_factory->hidden()->withRequired(true)->withValue(current($visible_auth_methods));
542  }
543 
544  $fields[self::PROP_AUTH_MODE] = $auth_mode;
545  }
546 
547  $fields += [
548  self::PROP_USERNAME => $field_factory
549  ->text($this->lng->txt('username'))
550  ->withRequired(
551  true,
552  $this->refinery->custom()->constraint(
553  static function (string $value): bool {
554  return $value !== '';
555  },
556  static function (Closure $lng, string $value): string {
557  return $lng('auth_required_username');
558  }
559  )
560  ),
561  self::PROP_PASSWORD => $field_factory
562  ->password($this->lng->txt('password'))
563  ->withRevelation(true)
564  ->withRequired(
565  true,
566  $this->refinery->custom()->constraint(
567  static function (string $value): bool {
568  return $value !== '';
569  },
570  static function (Closure $lng, string $value): string {
571  return $lng('auth_required_password');
572  }
573  )
574  )
575  ->withAdditionalTransformation(
576  $this->refinery->custom()->transformation(
577  static function (ILIAS\Data\Password $value): string {
578  return $value->toString();
579  }
580  )
581  ),
582  ];
583 
584  $sections = [$field_factory->section($fields, $this->lng->txt('login_to_ilias_via_login_form'))];
585 
586  return $this->ui_factory
587  ->input()
588  ->container()
589  ->form()
590  ->standard($this->ctrl->getFormAction($this, 'doStandardAuthentication'), $sections)
591  ->withDedicatedName('login_form')
592  ->withSubmitLabel($this->lng->txt('log_in'))
595  }
static _hasMultipleAuthenticationMethods()
Interface Observer Contains several chained tasks and infos about them.
static _getMultipleAuthModeOptions(ilLanguage $lng)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkForcedCommand()

ilStartUpGUI::checkForcedCommand ( string  $cmd)
private

Definition at line 102 of file class.ilStartUpGUI.php.

Referenced by executeCommand().

102  : string
103  {
104  if (self::$forced_cmd) {
105  $cmd = self::$forced_cmd;
106  self::$forced_cmd = '';
107  }
108 
109  return $cmd;
110  }
+ Here is the caller graph for this function:

◆ doApacheAuthentication()

ilStartUpGUI::doApacheAuthentication ( )
private

Definition at line 638 of file class.ilStartUpGUI.php.

References $provider, ilUtil\appendUrlParameterString(), ilAuthUtils\AUTH_APACHE, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilAuthStatus\getInstance(), getLogger(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ilInitialisation\redirectToStartingPage(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

638  : void
639  {
640  $this->getLogger()->debug('Trying apache authentication');
641 
642  $credentials = new ilAuthFrontendCredentialsApache($this->httpRequest, $this->ctrl);
643  $credentials->initFromRequest();
644 
645  $provider_factory = new ilAuthProviderFactory();
646  $provider = $provider_factory->getProviderByAuthMode($credentials, ilAuthUtils::AUTH_APACHE);
647 
648  $status = ilAuthStatus::getInstance();
649 
650  $frontend_factory = new \ilAuthFrontendFactory();
651  $frontend_factory->setContext(\ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
652  $frontend = $frontend_factory->getFrontend(
653  $this->authSession,
654  $status,
655  $credentials,
656  [$provider]
657  );
658  $frontend->authenticate();
659 
660  switch ($status->getStatus()) {
662  if ($credentials->hasValidTargetUrl()) {
663  $this->logger->debug(
664  sprintf(
665  'Authentication successful. Redirecting to starting page: %s',
666  $credentials->getTargetUrl()
667  )
668  );
669  $this->ctrl->redirectToURL($credentials->getTargetUrl());
670  }
671  $this->logger->debug(
672  'Authentication successful, but no valid target URL given. Redirecting to default starting page.'
673  );
675 
676  // no break
678  $this->ctrl->redirect($this, 'showAccountMigration');
679 
680  // no break
682  $this->mainTemplate->setOnScreenMessage('failure', $status->getTranslatedReason(), true);
683  $this->ctrl->redirectToURL(
685  $this->ctrl->getLinkTarget($this, 'showLoginPage', '', false, false),
686  'passed_sso=1'
687  )
688  );
689  }
690 
691  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'));
692  $this->showLoginPage();
693  }
static appendUrlParameterString(string $a_url, string $a_par, bool $xml_style=false)
const int STATUS_AUTHENTICATED
const int AUTH_APACHE
$provider
Definition: ltitoken.php:80
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int STATUS_AUTHENTICATION_FAILED
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
mainTemplate()
const int STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ doLTIAuthentication()

ilStartUpGUI::doLTIAuthentication ( )
private

Definition at line 597 of file class.ilStartUpGUI.php.

References $provider, ilAuthUtils\AUTH_PROVIDER_LTI, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilAuthStatus\getInstance(), ilLoggerFactory\getLogger(), getLogger(), ILIAS\Repository\lng(), mainTemplate(), ilInitialisation\redirectToStartingPage(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

597  : void
598  {
599  $this->getLogger()->debug('Trying lti authentication');
600 
601  $credentials = new ilAuthFrontendCredentialsLTI();
602  $credentials->initFromRequest();
603 
604  $provider_factory = new ilAuthProviderFactory();
605  $provider = $provider_factory->getProviderByAuthMode($credentials, ilAuthUtils::AUTH_PROVIDER_LTI);
606 
607  $status = ilAuthStatus::getInstance();
608 
609  $frontend_factory = new ilAuthFrontendFactory();
610  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
611  $frontend = $frontend_factory->getFrontend(
612  $this->authSession,
613  $status,
614  $credentials,
615  [$provider]
616  );
617  $frontend->authenticate();
618 
619  switch ($status->getStatus()) {
621  ilLoggerFactory::getLogger('auth')->debug('Authentication successful; Redirecting to starting page.');
623 
624  // no break
626  $this->ctrl->redirect($this, 'showAccountMigration');
627 
628  // no break
630  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt($status->getReason()), true);
631  $this->ctrl->redirect($this, 'showLoginPage');
632  }
633 
634  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'));
635  $this->showLoginPage();
636  }
static getLogger(string $a_component_id)
Get component logger.
const int STATUS_AUTHENTICATED
Auth credentials for lti oauth based authentication.
$provider
Definition: ltitoken.php:80
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int STATUS_AUTHENTICATION_FAILED
const int AUTH_PROVIDER_LTI
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
mainTemplate()
const int STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ doMigration()

ilStartUpGUI::doMigration ( array  $migration_request_data)
private
Parameters
array<string,string>$migration_request_data

Definition at line 1153 of file class.ilStartUpGUI.php.

References $GLOBALS, $provider, ilAuthUtils\AUTH_LOCAL, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilSession\get(), ilAuthStatus\getInstance(), getLogger(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ilAuthFrontend\MIG_TRIGGER_AUTHMODE, null, ilInitialisation\redirectToStartingPage(), showAccountMigration(), and ilAuthStatus\STATUS_AUTHENTICATED.

Referenced by migrateAccount().

1153  : void
1154  {
1155  $username = $migration_request_data[self::PROP_USERNAME];
1156  $password = $migration_request_data[self::PROP_PASSWORD];
1157 
1158  $this->logger->debug('Starting account migration for user: ' . ilSession::get('mig_ext_account'));
1159 
1160  $credentials = new ilAuthFrontendCredentials();
1161  $credentials->setUsername($username);
1162  $credentials->setPassword($password);
1163 
1164  $provider_factory = new ilAuthProviderFactory();
1165  $provider = $provider_factory->getProviderByAuthMode($credentials, ilAuthUtils::AUTH_LOCAL);
1166 
1167  $status = ilAuthStatus::getInstance();
1168 
1169  $frontend_factory = new ilAuthFrontendFactory();
1170  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1171  $frontend = $frontend_factory->getFrontend(
1172  $this->authSession,
1173  $status,
1174  $credentials,
1175  [$provider]
1176  );
1177  $frontend->authenticate();
1178 
1179  switch ($status->getStatus()) {
1181  $this->getLogger()->debug('Account migration: authentication successful for ' . $username);
1182 
1183  $provider = $provider_factory->getProviderByAuthMode(
1184  $credentials,
1186  );
1187  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1188  $frontend = $frontend_factory->getFrontend(
1189  $GLOBALS['DIC']['ilAuthSession'],
1190  $status,
1191  $credentials,
1192  [$provider]
1193  );
1194 
1195  if ($frontend->migrateAccount($GLOBALS['DIC']['ilAuthSession'])) {
1197  }
1198 
1199  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'), true);
1200  $this->ctrl->redirect($this, 'showAccountMigration');
1201 
1202  // no break
1203  default:
1204  $this->getLogger()->info('Account migration failed for user ' . $username);
1205  $this->showAccountMigration(null, $GLOBALS['lng']->txt('err_wrong_login'));
1206  }
1207  }
static get(string $a_var)
showAccountMigration(?ILIAS\UI\Component\Input\Container\Form\Form $form=null, string $message='')
const string MIG_TRIGGER_AUTHMODE
const int STATUS_AUTHENTICATED
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$provider
Definition: ltitoken.php:80
const int AUTH_LOCAL
$GLOBALS["DIC"]
Definition: wac.php:53
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doMigrationNewAccount()

ilStartUpGUI::doMigrationNewAccount ( )
private

Definition at line 1118 of file class.ilStartUpGUI.php.

References $GLOBALS, $provider, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilSession\get(), ilAuthStatus\getInstance(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ilAuthFrontend\MIG_EXTERNAL_ACCOUNT, ilAuthFrontend\MIG_TRIGGER_AUTHMODE, and ilInitialisation\redirectToStartingPage().

Referenced by migrateAccount().

1118  : void
1119  {
1120  $credentials = new ilAuthFrontendCredentials();
1121  $credentials->setUsername(ilSession::get(ilAuthFrontend::MIG_EXTERNAL_ACCOUNT));
1122 
1123  $provider_factory = new ilAuthProviderFactory();
1124  $provider = $provider_factory->getProviderByAuthMode(
1125  $credentials,
1127  );
1128 
1129  $this->logger->debug('Using provider: ' . get_class($provider) . ' for further processing.');
1130 
1131  $status = ilAuthStatus::getInstance();
1132 
1133  $frontend_factory = new ilAuthFrontendFactory();
1134  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1135  $frontend = $frontend_factory->getFrontend(
1136  $GLOBALS['DIC']['ilAuthSession'],
1137  $status,
1138  $credentials,
1139  [$provider]
1140  );
1141 
1142  if ($frontend->migrateAccountNew()) {
1144  }
1145 
1146  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'));
1147  $this->ctrl->redirect($this, 'showAccountMigration');
1148  }
static get(string $a_var)
const string MIG_TRIGGER_AUTHMODE
$provider
Definition: ltitoken.php:80
$GLOBALS["DIC"]
Definition: wac.php:53
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
const string MIG_EXTERNAL_ACCOUNT
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doOpenIdConnectAuthentication()

ilStartUpGUI::doOpenIdConnectAuthentication ( )
private

Definition at line 1700 of file class.ilStartUpGUI.php.

References $provider, ilAuthUtils\AUTH_OPENID_CONNECT, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilAuthStatus\getInstance(), getLogger(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ilInitialisation\redirectToStartingPage(), showLoginPage(), ilAuthStatus\STATUS_AUTHENTICATED, and ilAuthStatus\STATUS_AUTHENTICATION_FAILED.

1700  : void
1701  {
1702  $this->getLogger()->debug('Trying openid connect authentication');
1703 
1704  $credentials = new ilAuthFrontendCredentialsOpenIdConnect();
1705  $credentials->initFromRequest();
1706 
1707  $provider_factory = new ilAuthProviderFactory();
1708  $provider = $provider_factory->getProviderByAuthMode($credentials, ilAuthUtils::AUTH_OPENID_CONNECT);
1709 
1710  $status = ilAuthStatus::getInstance();
1711 
1712  $frontend_factory = new ilAuthFrontendFactory();
1713  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1714  $frontend = $frontend_factory->getFrontend(
1715  $this->authSession,
1716  $status,
1717  $credentials,
1718  [$provider]
1719  );
1720  $frontend->authenticate();
1721 
1722  switch ($status->getStatus()) {
1724  $this->logger->debug('Authentication successful; Redirecting to starting page.');
1725  if ($credentials->getRedirectionTarget()) {
1726  ilInitialisation::redirectToStartingPage($credentials->getRedirectionTarget());
1727  }
1729 
1730  // no break
1732  $this->mainTemplate->setOnScreenMessage('failure', $status->getTranslatedReason(), true);
1733  $this->ctrl->redirect($this, 'showLoginPage');
1734  }
1735 
1736  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'));
1737  $this->showLoginPage();
1738  }
const int STATUS_AUTHENTICATED
$provider
Definition: ltitoken.php:80
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int STATUS_AUTHENTICATION_FAILED
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
mainTemplate()
const int AUTH_OPENID_CONNECT
+ Here is the call graph for this function:

◆ doSamlAuthentication()

ilStartUpGUI::doSamlAuthentication ( )
private

Definition at line 1740 of file class.ilStartUpGUI.php.

References $httpRequest, $params, $provider, ilAuthUtils\AUTH_SAML, ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilSamlIdp\geIdpIdByEntityId(), ilSamlIdp\getActiveIdpList(), ilAuthStatus\getInstance(), ilLoggerFactory\getLogger(), getLogger(), ILIAS\Repository\int(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ilInitialisation\redirectToStartingPage(), showLoginPage(), showSamlIdpSelection(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, ilAuthStatus\STATUS_AUTHENTICATION_FAILED, and ilUtil\stripSlashes().

1740  : void
1741  {
1742  $this->getLogger()->debug('Trying saml authentication');
1743  $request = $this->httpRequest;
1744  $params = $request->getQueryParams();
1745 
1746  $factory = new ilSamlAuthFactory();
1747  $auth = $factory->auth();
1748 
1749  if (isset($params['action']) && $params['action'] === 'logout') {
1750  $logout_url = $params['logout_url'] ?? '';
1751  $this->logger->info(sprintf('Requested SAML logout: %s', $logout_url));
1752  $auth->logout($logout_url);
1753  }
1754 
1755  if (isset($params['target']) && !isset($params['returnTo'])) {
1756  $params['returnTo'] = $params['target'];
1757  }
1758 
1759  if (isset($params['returnTo'])) {
1760  $auth->storeParam('target', $params['returnTo']);
1761  }
1762 
1763  $this->logger->debug('Started SAML authentication request');
1764  if (!$auth->isAuthenticated()) {
1765  ilLoggerFactory::getLogger('auth')->debug('User is not authenticated, yet');
1766  if (!isset($request->getQueryParams()['idpentityid'], $request->getQueryParams()['saml_idp_id'])) {
1767  $activeIdps = ilSamlIdp::getActiveIdpList();
1768  if (count($activeIdps) === 1) {
1769  $idp = current($activeIdps);
1770 
1771  ilLoggerFactory::getLogger('auth')->debug(
1772  sprintf(
1773  'Found exactly one active IDP with id %s: %s',
1774  $idp->getIdpId(),
1775  $idp->getEntityId()
1776  )
1777  );
1778 
1779  $this->ctrl->setParameter($this, 'idpentityid', $idp->getEntityId());
1780  $this->ctrl->setParameter($this, 'saml_idp_id', $idp->getIdpId());
1781  $this->ctrl->setTargetScript('saml.php');
1782  $this->ctrl->redirect($this, 'doSamlAuthentication');
1783  } elseif ($activeIdps === []) {
1784  $this->logger->debug('Did not find any active IDP, skipp authentication process');
1785  $this->ctrl->redirect($this, 'showLoginPage');
1786  } else {
1787  $this->logger->debug('Found multiple active IPDs, presenting IDP selection...');
1788  $this->showSamlIdpSelection($auth, $activeIdps);
1789  return;
1790  }
1791  }
1792 
1793  $auth->storeParam('idpId', (int) $request->getQueryParams()['saml_idp_id']);
1794  $this->logger->debug(sprintf('Stored relevant IDP id in session: %s', $auth->getParam('idpId')));
1795  }
1796 
1797  $auth = $factory->auth();
1798 
1799  $this->logger->debug('Checking SAML authentication status...');
1800  $auth->protectResource();
1801  $this->logger->debug(
1802  'SAML authentication successful, continuing with ILIAS internal authentication process...'
1803  );
1804 
1805  $idpId = (int) $auth->getParam('idpId');
1806 
1807  $this->logger->debug(
1808  sprintf(
1809  'Internal SAML IDP id fetched from session: %s',
1810  $idpId
1811  )
1812  );
1813 
1814  if ($idpId < 1) {
1815  $this->logger->debug(
1816  'No valid internal IDP id found (most probably due to IDP initiated SSO), trying fallback determination...'
1817  );
1818  $authData = $auth->getAuthDataArray();
1819  if (isset($authData['saml:sp:IdP'])) {
1820  $idpId = ilSamlIdp::geIdpIdByEntityId($authData['saml:sp:IdP']);
1821  $this->logger->debug(
1822  sprintf(
1823  'Searching active ILIAS IDP by entity id "%s" results in: %s',
1824  $authData['saml:sp:IdP'],
1825  $idpId
1826  )
1827  );
1828  } else {
1829  $this->logger->debug(
1830  'Could not execute fallback determination, no IDP entity ID found SAML authentication session data'
1831  );
1832  }
1833  }
1834 
1835  $target = $auth->popParam('target');
1836 
1837  $this->logger->debug(sprintf('Retrieved "target" parameter: %s', print_r($target, true)));
1838 
1839  $credentials = new ilAuthFrontendCredentialsSaml($auth, $request);
1840  $credentials->initFromRequest();
1841 
1842  $provider_factory = new ilAuthProviderFactory();
1843  $provider = $provider_factory->getProviderByAuthMode(
1844  $credentials,
1846  ilAuthUtils::AUTH_SAML . '_' . $idpId
1847  )
1848  );
1849 
1850  if ($target) {
1851  $credentials->setReturnTo($target);
1852  } else {
1853  $target = $credentials->getReturnTo();
1854  }
1855 
1856  $status = ilAuthStatus::getInstance();
1857 
1858  $frontend_factory = new ilAuthFrontendFactory();
1859  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
1860  $frontend = $frontend_factory->getFrontend(
1861  $this->authSession,
1862  $status,
1863  $credentials,
1864  [$provider]
1865  );
1866  $frontend->authenticate();
1867 
1868  switch ($status->getStatus()) {
1870  $this->logger->debug('Authentication successful; Redirecting to starting page.');
1872 
1873  // no break
1875  $this->ctrl->redirect($this, 'showAccountMigration');
1876 
1877  // no break
1879  $this->mainTemplate->setOnScreenMessage('failure', $status->getTranslatedReason(), true);
1880  $this->ctrl->redirect($this, 'showLoginPage');
1881  }
1882 
1883  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('err_wrong_login'));
1884  $this->showLoginPage();
1885  }
static getLogger(string $a_component_id)
Get component logger.
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:31
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
const int STATUS_AUTHENTICATED
$provider
Definition: ltitoken.php:80
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int STATUS_AUTHENTICATION_FAILED
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
showSamlIdpSelection(ilSamlAuth $auth, array $idps)
static geIdpIdByEntityId(string $entityId)
ServerRequestInterface $httpRequest
static getActiveIdpList()
const int AUTH_SAML
mainTemplate()
const int STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ doStandardAuthentication()

ilStartUpGUI::doStandardAuthentication ( )
private

Definition at line 695 of file class.ilStartUpGUI.php.

References $duration, ilAuthModeDetermination\_getInstance(), ilAuthUtils\_hasMultipleAuthenticationMethods(), ilObjUser\_lookupLogin(), buildCodeForm(), buildStandardLoginForm(), ilAuthFrontendFactory\CONTEXT_STANDARD_FORM, ILIAS\Repository\ctrl(), ilAuthStatus\getInstance(), ilLoggerFactory\getLogger(), getLogger(), ILIAS\FileDelivery\http(), mainTemplate(), null, ilInitialisation\redirectToStartingPage(), showLoginPage(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, ilAuthStatus\STATUS_AUTHENTICATION_FAILED, and ilAuthStatus\STATUS_CODE_ACTIVATION_REQUIRED.

695  : void
696  {
697  $form = $this->buildStandardLoginForm();
698  $form_valid = false;
699  $form_data = null;
700  if ($this->http->request()->getMethod() === 'POST') {
701  $form = $form->withRequest($this->http->request());
702  $form_data = $form->getData();
703  $form_valid = $form_data !== null;
704  }
705 
706  if (!$form_valid) {
707  $this->showLoginPage($form);
708  return;
709  }
710 
711  $this->getLogger()->debug('Trying to authenticate user.');
712 
713  $auth_callback = function () use ($form_data) {
714  $credentials = new ilAuthFrontendCredentials();
715  $credentials->setUsername($form_data[self::PROP_USERNAME]);
716  $credentials->setPassword($form_data[self::PROP_PASSWORD]);
717 
719  if (ilAuthUtils::_hasMultipleAuthenticationMethods() and $det->isManualSelection()) {
720  $credentials->setAuthMode($form_data[self::PROP_AUTH_MODE]);
721  }
722 
723  $provider_factory = new ilAuthProviderFactory();
724  $providers = $provider_factory->getProviders($credentials);
725 
726  $status = ilAuthStatus::getInstance();
727 
728  $frontend_factory = new ilAuthFrontendFactory();
729  $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_STANDARD_FORM);
730  $frontend = $frontend_factory->getFrontend(
731  $this->authSession,
732  $status,
733  $credentials,
734  $providers
735  );
736  $frontend->authenticate();
737 
738  return $status;
739  };
740 
741  if (($auth_duration = $this->setting->get('auth_duration')) !== null) {
742  $duration = $this->http->durations()->callbackDuration((int) $auth_duration);
743  $status = $duration->stretch($auth_callback);
744  } else {
745  $status = $auth_callback();
746  }
747 
748  switch ($status->getStatus()) {
750  ilLoggerFactory::getLogger('auth')->debug(
751  'Authentication successful; Redirecting to starting page.'
752  );
754 
755  // no break
757  $uname = ilObjUser::_lookupLogin($status->getAuthenticatedUserId());
758  $this->showLoginPage($this->buildCodeForm($uname));
759  return;
760 
762  $this->ctrl->redirect($this, 'showAccountMigration');
763 
764  // no break
766  $this->mainTemplate->setOnScreenMessage('failure', $status->getTranslatedReason());
767  $this->showLoginPage($form);
768  }
769  }
static getLogger(string $a_component_id)
Get component logger.
static _hasMultipleAuthenticationMethods()
const int STATUS_AUTHENTICATED
$duration
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int STATUS_CODE_ACTIVATION_REQUIRED
const int STATUS_AUTHENTICATION_FAILED
const int CONTEXT_STANDARD_FORM
Authentication with id and password.
static redirectToStartingPage(string $target='')
static getInstance()
Get status instance.
mainTemplate()
buildCodeForm(?string $username=null)
static _lookupLogin(int $a_user_id)
const int STATUS_ACCOUNT_MIGRATION_REQUIRED
+ Here is the call graph for this function:

◆ executeCommand()

ilStartUpGUI::executeCommand ( )

Definition at line 153 of file class.ilStartUpGUI.php.

References checkForcedCommand(), ILIAS\Repository\ctrl(), and showLoginPageOrStartupPage().

153  : void
154  {
155  $cmd = $this->checkForcedCommand($this->ctrl->getCmd('processIndexPHP'));
156 
157  $next_class = $this->ctrl->getNextClass($this) ?? '';
158 
159  switch (strtolower($next_class)) {
160  case strtolower(ilLoginPageGUI::class):
161  break;
162 
163  case strtolower(ilAccountRegistrationGUI::class):
164  $this->ctrl->forwardCommand(new ilAccountRegistrationGUI());
165  return;
166 
167  case strtolower(ilPasswordAssistanceGUI::class):
168  $this->ctrl->forwardCommand(new ilPasswordAssistanceGUI());
169  return;
170 
171  case strtolower(ilAccessibilityControlConceptGUI::class):
172  $this->ctrl->forwardCommand(new ilAccessibilityControlConceptGUI());
173  return;
174 
175  default:
176  if (method_exists($this, $cmd)) {
177  $this->$cmd();
178  return;
179  }
180  }
181 
182  // because this class now implements ilCtrlSecurityInterface,
183  // it may occur that commands are null, therefore I added
184  // this as a fallback method.
186  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilAccountRegistrationGUI.
checkForcedCommand(string $cmd)
+ Here is the call graph for this function:

◆ getAuthPageEditorHtml()

ilStartUpGUI::getAuthPageEditorHtml ( AuthPageEditorContext  $ipe_context)
private

Definition at line 896 of file class.ilStartUpGUI.php.

References ilPageUtil\_existsAndNotEmpty(), ilObjAuthSettings\getAuthSettingsRefId(), ilAuthPageEditorSettings\getInstance(), ILIAS\Repository\lng(), ilLanguage\lookupId(), and mainTemplate().

Referenced by showLoginPage(), and showLogout().

896  : string
897  {
898  $ipe_settings = ilAuthPageEditorSettings::getInstance($ipe_context);
899 
900  $ipe_language = $ipe_settings->getIliasEditorLanguage($this->lng->getLangKey());
901  if (!$ipe_language) {
902  return '';
903  }
904 
905  // if page does not exist, return nothing
906  if (!ilPageUtil::_existsAndNotEmpty($ipe_context->pageType(), ilLanguage::lookupId($ipe_language))) {
907  return '';
908  }
909 
910  $this->dic->contentStyle()->gui()->addCss($this->mainTemplate, ilObjAuthSettings::getAuthSettingsRefId());
911 
912  $page_gui = new ($ipe_context->pageUiClass())(ilLanguage::lookupId($ipe_language));
913 
914  $page_gui->setStyleId(0);
915 
916  $page_gui->setPresentationTitle('');
917  $page_gui->setTemplateOutput(false);
918  $page_gui->setHeader('');
919 
920  return $page_gui->showPage();
921  }
static _existsAndNotEmpty(string $a_parent_type, int $a_id, string $a_lang="-")
checks whether page exists and is not empty (may return true on some empty pages) ...
static lookupId(string $a_lang_key)
Lookup obj_id of language.
static getInstance(AuthPageEditorContext $context)
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLogger()

ilStartUpGUI::getLogger ( )
private

Definition at line 188 of file class.ilStartUpGUI.php.

References $logger.

Referenced by doApacheAuthentication(), doLTIAuthentication(), doMigration(), doOpenIdConnectAuthentication(), doSamlAuthentication(), doStandardAuthentication(), and showLoginPage().

188  : ilLogger
189  {
190  return $this->logger;
191  }
+ Here is the caller graph for this function:

◆ getSafePostCommands()

ilStartUpGUI::getSafePostCommands ( )

This method must return a list of safe POST commands.

Safe post commands returned by this method will no longer be CSRF protected and will NOT be appended by an ilCtrlToken.

Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 146 of file class.ilStartUpGUI.php.

146  : array
147  {
148  return [
149  'doStandardAuthentication',
150  ];
151  }

◆ getUnsafeGetCommands()

ilStartUpGUI::getUnsafeGetCommands ( )

This method must return a list of unsafe GET commands.

Unsafe get commands returned by this method will now be CSRF protected, which means an ilCtrlToken is appended each time a link-target is generated to the class implementing this interface with a command from that list.

Tokens will be validated in

See also
ilCtrlInterface::getCmd(), whereas the fallback command will be used if the CSRF validation fails.
Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 139 of file class.ilStartUpGUI.php.

139  : array
140  {
141  return [
142  'doLogout'
143  ];
144  }

◆ initStartUpTemplate()

static ilStartUpGUI::initStartUpTemplate (   $a_tmpl,
bool  $a_show_back = false,
bool  $a_show_logout = false 
)
static

This method enriches the global template with some user interface elements (language selection, headlines, back buttons, ...) for public service views.

Parameters
string|array{0string, 1: string} $a_tmpl The template file as a string of as an array (index 0: template file, index 1: template directory)

Definition at line 1578 of file class.ilStartUpGUI.php.

References $_SERVER, $DIC, $param, ANONYMOUS_USER_ID, CLIENT_ID, ilPublicSectionSettings\getInstance(), and ROOT_FOLDER_ID.

Referenced by ilAccountRegistrationGUI\displayForm(), ilPasswordAssistanceGUI\getAssignPasswordForm(), ilAccountRegistrationGUI\login(), ilPasswordAssistanceGUI\showAssistanceForm(), ilPasswordAssistanceGUI\showMessageForm(), and ilPasswordAssistanceGUI\showUsernameAssistanceForm().

1583  global $DIC;
1584 
1585  $tpl = new ilGlobalTemplate('tpl.main.html', true, true);
1586 
1587  $tpl->addBlockfile('CONTENT', 'content', 'tpl.startup_screen.html', 'components/ILIAS/Init');
1588 
1589  $view_title = $DIC->language()->txt('login_to_ilias');
1590  if ($a_show_back) {
1591  // #13400
1592  $param = 'client_id=' . CLIENT_ID . '&lang=' . $DIC->language()->getLangKey();
1593 
1594  $tpl->setCurrentBlock('link_item_bl');
1595  $tpl->setVariable('LINK_TXT', $view_title);
1596  $tpl->setVariable('LINK_URL', 'login.php?cmd=force_login&' . $param);
1597  $tpl->parseCurrentBlock();
1598 
1599  if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME']) &&
1600  $DIC->access()->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)) {
1601  $tpl->setVariable('LINK_URL', 'index.php?' . $param);
1602  $tpl->setVariable('LINK_TXT', $DIC->language()->txt('home'));
1603  $tpl->parseCurrentBlock();
1604  }
1605  } elseif ($a_show_logout) {
1606  $view_title = $DIC->language()->txt('logout');
1607  $tpl->setCurrentBlock('link_item_bl');
1608  $tpl->setVariable('LINK_TXT', $view_title);
1609  $tpl->setVariable('LINK_URL', self::logoutUrl());
1610  $tpl->parseCurrentBlock();
1611  }
1612 
1613  if (is_array($a_tmpl)) {
1614  $template_file = $a_tmpl[0];
1615  $template_dir = $a_tmpl[1];
1616  } else {
1617  $template_file = $a_tmpl;
1618  $template_dir = 'components/ILIAS/Init';
1619  }
1620 
1621  $tpl->addBlockFile('STARTUP_CONTENT', 'startup_content', $template_file, $template_dir);
1622 
1623  PageContentProvider::setViewTitle($view_title);
1624  $short_title = trim($DIC->settings()->get('short_inst_name') ?? '');
1625  if ($short_title === '') {
1626  $short_title = 'ILIAS';
1627  }
1628  PageContentProvider::setShortTitle($short_title);
1629 
1630  $header_title = ilObjSystemFolder::_getHeaderTitle();
1631  PageContentProvider::setTitle($header_title);
1632 
1633  return $tpl;
1634  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
special template class to simplify handling of ITX/PEAR
const ROOT_FOLDER_ID
Definition: constants.php:32
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
$param
Definition: xapitoken.php:46
const CLIENT_ID
Definition: constants.php:41
global $DIC
Definition: shib_login.php:26
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initTargetFromQuery()

ilStartUpGUI::initTargetFromQuery ( )
private

Definition at line 131 of file class.ilStartUpGUI.php.

References ILIAS\FileDelivery\http(), and ILIAS\Repository\refinery().

Referenced by showOpenIdConnectLoginForm(), showSamlLoginForm(), and showShibbolethLoginForm().

131  : string
132  {
133  return $this->http->wrapper()->query()->retrieve(
134  'target',
135  $this->refinery->byTrying([$this->refinery->kindlyTo()->string(), $this->refinery->always('')])
136  );
137  }
static http()
Fetches the global http state from ILIAS.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ jumpToPasswordAssistance()

ilStartUpGUI::jumpToPasswordAssistance ( )
private

Definition at line 198 of file class.ilStartUpGUI.php.

References ILIAS\Repository\ctrl().

198  : void
199  {
200  $this->ctrl->saveParameterByClass(ilPasswordAssistanceGUI::class, 'key');
201  $this->ctrl->redirectByClass(ilPasswordAssistanceGUI::class);
202  }
+ Here is the call graph for this function:

◆ jumpToRegistration()

ilStartUpGUI::jumpToRegistration ( )
private

Definition at line 193 of file class.ilStartUpGUI.php.

References ILIAS\Repository\ctrl().

193  : void
194  {
195  $this->ctrl->redirectByClass(ilAccountRegistrationGUI::class);
196  }
+ Here is the call graph for this function:

◆ logoutUrl()

static ilStartUpGUI::logoutUrl ( array  $parameters = [])
static

Return the logout URL with a valid CSRF token.

Without the token the logout won't be successful.

Parameters
array<string,string>$parameters

Definition at line 1932 of file class.ilStartUpGUI.php.

References $DIC, and $url.

Referenced by ILIAS\LegalDocuments\Provide\ProvideWithdrawal\__construct(), ILIAS\LegalDocuments\Conductor\__construct(), ILIAS\User\Provider\UserMetaBarProvider\getMetaBarItems(), ilAuthProviderOpenIdConnect\handleLogout(), and ILIAS\LegalDocuments\ConsumerToolbox\Blocks\routing().

1932  : string
1933  {
1934  global $DIC;
1935 
1936  $defaults = ['lang' => $DIC->user()->getCurrentLanguage()];
1937  $parameters = '&' . http_build_query(array_merge($defaults, $parameters));
1938 
1939  $DIC->ctrl()->setTargetScript('logout.php');
1940  $url = $DIC->ctrl()->getLinkTargetByClass([self::class], 'doLogout') . $parameters;
1941  $DIC->ctrl()->setTargetScript('ilias.php');
1942 
1943  return $url;
1944  }
$url
Definition: shib_logout.php:68
global $DIC
Definition: shib_login.php:26
+ Here is the caller graph for this function:

◆ mergeValuesTrafo()

ilStartUpGUI::mergeValuesTrafo ( )
private

Definition at line 112 of file class.ilStartUpGUI.php.

References ILIAS\Repository\refinery().

Referenced by buildAccountMigrationForm(), buildCodeForm(), and buildStandardLoginForm().

113  {
114  return $this->refinery->custom()->transformation(static function (array $values): array {
115  return array_merge(...$values);
116  });
117  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ migrateAccount()

ilStartUpGUI::migrateAccount ( )
private

Definition at line 1088 of file class.ilStartUpGUI.php.

References buildAccountMigrationForm(), doMigration(), doMigrationNewAccount(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), null, and showAccountMigration().

1088  : void
1089  {
1090  $form = $this->buildAccountMigrationForm();
1091  $form_valid = false;
1092  $form_data = null;
1093  if ($this->http->request()->getMethod() === 'POST') {
1094  $form = $form->withRequest($this->http->request());
1095  $form_data = $form->getData();
1096  $form_valid = $form_data !== null;
1097  }
1098 
1099  if (!$form_valid) {
1100  $this->showAccountMigration($form, $this->lng->txt('form_input_not_valid'));
1101  return;
1102  }
1103 
1104  $account_migration = $form_data[self::PROP_ACCOUNT_MIGRATION];
1105  $account_migration_mode = $account_migration[0];
1106  if ($account_migration_mode === self::PROP_ACCOUNT_MIGRATION_MIGRATE) {
1107  $this->doMigration($account_migration[1]);
1108  } elseif ($account_migration_mode === self::PROP_ACCOUNT_MIGRATION_NEW) {
1109  $this->doMigrationNewAccount();
1110  } else {
1111  $this->showAccountMigration(
1112  $form,
1113  $this->lng->txt('form_input_not_valid')
1114  );
1115  }
1116  }
showAccountMigration(?ILIAS\UI\Component\Input\Container\Form\Form $form=null, string $message='')
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static http()
Fetches the global http state from ILIAS.
doMigration(array $migration_request_data)
+ Here is the call graph for this function:

◆ printToGlobalTemplate()

static ilStartUpGUI::printToGlobalTemplate (   $tpl)
static
Parameters
ilTemplate | ilGlobalTemplateInterface$tpl

Definition at line 356 of file class.ilStartUpGUI.php.

References $DIC.

Referenced by ilAccountRegistrationGUI\executeCommand(), ilPasswordAssistanceGUI\getAssignPasswordForm(), ilPasswordAssistanceGUI\showAssistanceForm(), ilPasswordAssistanceGUI\showMessageForm(), and ilPasswordAssistanceGUI\showUsernameAssistanceForm().

356  : void
357  {
358  global $DIC;
359  $gtpl = $DIC['tpl'];
360  $gtpl->setContent($tpl->get());
361  $gtpl->printToStdout('DEFAULT', false, true);
362  }
global $DIC
Definition: shib_login.php:26
+ Here is the caller graph for this function:

◆ processCode()

ilStartUpGUI::processCode ( )
private

Definition at line 439 of file class.ilStartUpGUI.php.

References $GLOBALS, $user_id, ilObjUser\_lookupId(), ilRegistrationCode\applyAccessLimits(), ilRegistrationCode\applyRoleAssignments(), buildCodeForm(), ILIAS\Repository\ctrl(), ilRegistrationCode\getCodeValidUntil(), ILIAS\FileDelivery\http(), ilRegistrationCode\isUnusedCode(), ILIAS\UI\examples\Symbol\Glyph\Language\language(), ILIAS\Repository\lng(), mainTemplate(), null, ilObjUser\setActive(), ilObjUser\setTimeLimitUnlimited(), ilObjUser\setTimeLimitUntil(), showCodeForm(), showLoginPage(), ilObjUser\update(), and ilRegistrationCode\useCode().

439  : void
440  {
441  $form = $this->buildCodeForm();
442  $form_valid = false;
443  $form_data = null;
444  if ($this->http->request()->getMethod() === 'POST') {
445  $form = $form->withRequest($this->http->request());
446  $form_data = $form->getData();
447  $form_valid = $form_data !== null;
448  }
449 
450  $uname = null;
451  if ($form_valid) {
452  $code = $form_data[self::PROP_CODE];
453  $uname = $form_data[self::PROP_USERNAME];
455  $valid_until = ilRegistrationCode::getCodeValidUntil($code);
456  if (!$user_id = ilObjUser::_lookupId($uname)) {
457  $this->showLoginPage();
458  return;
459  }
460  $invalid_code = false;
461  $user = new ilObjUser($user_id);
462  if ($valid_until === '0') {
464  } else {
465  if (is_numeric($valid_until)) {
466  $valid_until = strtotime('+' . $valid_until . 'days');
467  } else {
468  $valid_until = explode('-', $valid_until);
469  $valid_until = mktime(
470  23,
471  59,
472  59,
473  (int) $valid_until[1],
474  (int) $valid_until[2],
475  (int) $valid_until[0]
476  );
477  if ($valid_until < time()) {
478  $invalid_code = true;
479  }
480  }
481 
482  if (!$invalid_code) {
484  $user->setTimeLimitUntil($valid_until);
485  }
486  }
487 
488  if (!$invalid_code) {
489  $user->setActive(true);
491  // apply registration code role assignments
493  // apply registration code tie limits
495 
496  $user->update();
497 
498  $this->ctrl->setParameter($this, 'cu', 1);
499  $this->lng->loadLanguageModule('auth');
500  $this->mainTemplate->setOnScreenMessage(
501  'success',
502  $GLOBALS['DIC']->language()->txt('auth_activation_code_success'),
503  true
504  );
505  $this->ctrl->redirect($this, 'showLoginPage');
506  }
507  }
508 
509  $this->lng->loadLanguageModule('user');
510  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('user_account_code_not_valid'));
511  } else {
512  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('form_input_not_valid'));
513  }
514 
515  $this->showCodeForm($uname, $form);
516  }
setTimeLimitUnlimited(bool $a_unlimited)
static getCodeValidUntil(string $code)
static _lookupId($a_user_str)
setTimeLimitUntil(?int $a_until)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setActive(bool $a_active, int $a_owner=0)
set user active state and updates system fields appropriately
static http()
Fetches the global http state from ILIAS.
$GLOBALS["DIC"]
Definition: wac.php:53
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
static isUnusedCode(string $code)
showCodeForm(?string $username=null, ?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
static useCode(string $code)
language()
description: > Example for rendring a language glyph.
Definition: language.php:41
static applyRoleAssignments(ilObjUser $user, string $code)
mainTemplate()
static applyAccessLimits(ilObjUser $user, string $code)
buildCodeForm(?string $username=null)
+ Here is the call graph for this function:

◆ processIndexPHP()

ilStartUpGUI::processIndexPHP ( )
private

Definition at line 1306 of file class.ilStartUpGUI.php.

References $_COOKIE, $_SERVER, $DIC, $location, $path, $ref_id, XapiProxy\$resp, ilObject\_getAllReferences(), ilCourseParticipant\_getInstanceByObjId(), ilObjCourse\_isActivated(), ilGroupParticipants\_isParticipant(), ilLMObject\_lookupContObjID(), ilObject\_lookupObjId(), ilObject\_lookupType(), ilObjCourse\_registrationEnabled(), ilObjUser\_verifyRegistrationHash(), ILIAS\Repository\access(), ANONYMOUS_USER_ID, CLIENT_ID, ILIAS\Repository\ctrl(), ilRBACAccessHandler\doActivationCheck(), ilRBACAccessHandler\doStatusCheck(), ilSecuritySettingsChecker\generatePasswords(), ilParticipants\getDefaultMemberRole(), ilPublicSectionSettings\getInstance(), ilObjectFactory\getInstanceByObjId(), ilObjUser\getLanguage(), ilLoggerFactory\getLogger(), ilObjUser\getPref(), ilInitialisation\goToPublicSection(), ILIAS\FileDelivery\http(), ILIAS\Repository\int(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), mainTemplate(), ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_FAILURE, ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_SUCCESS, ilObjUser\PASSWD_PLAIN, ilUtil\redirect(), ilInitialisation\redirectToStartingPage(), ILIAS\Repository\refinery(), ROOT_FOLDER_ID, ilSession\set(), ilObjUser\setActive(), ilUtil\setCookie(), ilObjUser\setLastPasswordChangeTS(), ilObjUser\setPasswd(), showLoginPage(), ilObjUser\update(), and ILIAS\Repository\user().

1306  : void
1307  {
1308  if ($this->authSession->isValid()) {
1309  if (!$this->user->isAnonymous() || (
1310  ilPublicSectionSettings::getInstance()->isEnabledForDomain(
1311  $this->httpRequest->getServerParams()['SERVER_NAME']
1312  ) && $this->access->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)
1313  )) {
1315  return;
1316  }
1317  }
1318 
1319  if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME']) &&
1320  $this->access->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)) {
1322  }
1323 
1324  $this->showLoginPage();
1325  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32
static goToPublicSection()
go to public section
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
static redirectToStartingPage(string $target='')
+ Here is the call graph for this function:

◆ purgePlaceholders()

ilStartUpGUI::purgePlaceholders ( string  $page_editor_html)
private

Definition at line 1003 of file class.ilStartUpGUI.php.

Referenced by showLoginPage().

1003  : string
1004  {
1005  return str_replace(
1006  [
1007  '[list-language-selection]',
1008  '[list-registration-link]',
1009  '[list-user-agreement]',
1010  '[list-dpro-agreement]',
1011  '[list-login-form]',
1012  '[list-saml-login]',
1013  '[list-shibboleth-login-form]',
1014  '[list-openid-connect-login]'
1015  ],
1016  '',
1017  $page_editor_html
1018  );
1019  }
+ Here is the caller graph for this function:

◆ retrieveMessagesFromSession()

ilStartUpGUI::retrieveMessagesFromSession ( )
private
Returns
array<string, string>

Definition at line 367 of file class.ilStartUpGUI.php.

References $messages, ilSession\get(), ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_FAILURE, ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_INFO, ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_QUESTION, and ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_SUCCESS.

Referenced by showLoginPageOrStartupPage().

367  : array
368  {
369  $messages = [];
370  $message_types = [
375  ];
376 
377  foreach ($message_types as $message_type) {
378  if (ilSession::get($message_type)) {
379  $messages[$message_type] = ilSession::get($message_type);
380  }
381  }
382 
383  return $messages;
384  }
static get(string $a_var)
$messages
Definition: xapiexit.php:21
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ saniziteArrayElementsTrafo()

ilStartUpGUI::saniziteArrayElementsTrafo ( )
private

Definition at line 119 of file class.ilStartUpGUI.php.

References ILIAS\Repository\refinery(), and ilArrayUtil\stripSlashesRecursive().

Referenced by buildAccountMigrationForm(), buildCodeForm(), and buildStandardLoginForm().

120  {
121  return $this->refinery->custom()->transformation(static function (array $values): array {
122  $processed_values = array_merge(
124  isset($values[self::PROP_PASSWORD]) ? [self::PROP_PASSWORD => $values[self::PROP_PASSWORD]] : []
125  );
126 
127  return $processed_values;
128  });
129  }
static stripSlashesRecursive($a_data, bool $a_strip_html=true, string $a_allow="")
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setForcedCommand()

static ilStartUpGUI::setForcedCommand ( string  $cmd)
static

Definition at line 97 of file class.ilStartUpGUI.php.

97  : void
98  {
99  self::$forced_cmd = $cmd;
100  }

◆ showAccountMigration()

ilStartUpGUI::showAccountMigration ( ?ILIAS\UI\Component\Input\Container\Form\Form  $form = null,
string  $message = '' 
)
private

Definition at line 1072 of file class.ilStartUpGUI.php.

References $message, ILIAS\Repository\help(), and mainTemplate().

Referenced by doMigration(), and migrateAccount().

1075  : void {
1076  $this->help->setSubScreenId('account_migration');
1077 
1078  $tpl = self::initStartUpTemplate('tpl.login_account_migration.html');
1079  $tpl->setVariable('MIG_FORM', $this->ui_renderer->render($form ?? $this->buildAccountMigrationForm()));
1080 
1081  if ($message !== '') {
1082  $this->mainTemplate->setOnScreenMessage('failure', $message);
1083  }
1084 
1085  self::printToGlobalTemplate($tpl);
1086  }
$message
Definition: xapiexit.php:31
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showCodeForm()

ilStartUpGUI::showCodeForm ( ?string  $username = null,
?ILIAS\UI\Component\Input\Container\Form\Form  $form = null 
)
private

Definition at line 386 of file class.ilStartUpGUI.php.

References ILIAS\Repository\help(), ILIAS\Repository\lng(), and mainTemplate().

Referenced by processCode().

389  : void {
390  $this->help->setSubScreenId('code_input');
391 
392  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('time_limit_reached'));
393 
394  $tpl = self::initStartUpTemplate('tpl.login_reactivate_code.html');
395  $tpl->setVariable('FORM', $this->ui_renderer->render($form ?? $this->buildCodeForm($username)));
396  self::printToGlobalTemplate($tpl);
397  }
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLegalDocuments()

ilStartUpGUI::showLegalDocuments ( )
protected

Definition at line 1298 of file class.ilStartUpGUI.php.

References $DIC.

1298  : void
1299  {
1300  global $DIC;
1301  $tpl = self::initStartUpTemplate(['agreement.html', 'components/ILIAS/LegalDocuments'], true, false);
1302  $tpl->setVariable('CONTENT', $DIC['legalDocuments']->agreeContent(self::class, __FUNCTION__));
1303  self::printToGlobalTemplate($tpl);
1304  }
global $DIC
Definition: shib_login.php:26

◆ showLegalDocumentsLinks()

ilStartUpGUI::showLegalDocumentsLinks ( string  $page_editor_html)
private

Definition at line 976 of file class.ilStartUpGUI.php.

References $DIC, ANONYMOUS_USER_ID, substituteLoginPageElements(), and ILIAS\Repository\user().

Referenced by showLoginPage().

976  : string
977  {
978  global $tpl;
979  global $DIC;
980 
981  if (0 === $this->user->getId()) {
982  $this->user->setId(ANONYMOUS_USER_ID);
983  }
984 
985  $page_editor_html = $this->substituteLoginPageElements(
986  $tpl,
987  $page_editor_html,
988  $DIC['legalDocuments']->loginPageHTML(TermsOfService::ID),
989  '[list-user-agreement]',
990  'USER_AGREEMENT'
991  );
992  $page_editor_html = $this->substituteLoginPageElements(
993  $tpl,
994  $page_editor_html,
995  $DIC['legalDocuments']->loginPageHTML(DataProtection::ID),
996  '[list-dpro-agreement]',
997  'DPRO_AGREEMENT'
998  );
999 
1000  return $page_editor_html;
1001  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
global $DIC
Definition: shib_login.php:26
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginForm()

ilStartUpGUI::showLoginForm ( string  $page_editor_html,
?ILIAS\UI\Component\Input\Container\Form\Form  $form = null 
)
private

Definition at line 771 of file class.ilStartUpGUI.php.

References substituteLoginPageElements().

Referenced by showLoginPage().

774  : string {
775  global $tpl;
776 
777  return $this->substituteLoginPageElements(
778  $tpl,
779  $page_editor_html,
780  $this->ui_renderer->render($form ?? $this->buildStandardLoginForm()),
781  '[list-login-form]',
782  'LOGIN_FORM'
783  );
784  }
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginInformation()

ilStartUpGUI::showLoginInformation ( string  $page_editor_html,
ilGlobalTemplateInterface  $tpl 
)
private

Definition at line 786 of file class.ilStartUpGUI.php.

Referenced by showLoginPage().

786  : string
787  {
788  if ($page_editor_html !== '') {
789  return $page_editor_html;
790  }
791 
792  return $page_editor_html;
793  }
+ Here is the caller graph for this function:

◆ showLoginPage()

ilStartUpGUI::showLoginPage ( ?ILIAS\UI\Component\Input\Container\Form\Form  $form = null)
private

Definition at line 276 of file class.ilStartUpGUI.php.

References $GLOBALS, ANONYMOUS_USER_ID, ILIAS\Repository\ctrl(), getAuthPageEditorHtml(), ilObjStyleSheet\getContentStylePath(), getLogger(), ilObjStyleSheet\getSyntaxStylePath(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), mainTemplate(), ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_FAILURE, ILIAS\UICore\GlobalTemplate\MESSAGE_TYPE_SUCCESS, null, purgePlaceholders(), ILIAS\Repository\refinery(), showLegalDocumentsLinks(), showLoginForm(), showLoginInformation(), showOpenIdConnectLoginForm(), showRegistrationLinks(), showSamlLoginForm(), and showShibbolethLoginForm().

Referenced by doApacheAuthentication(), doLTIAuthentication(), doOpenIdConnectAuthentication(), doSamlAuthentication(), doStandardAuthentication(), processCode(), processIndexPHP(), and showLoginPageOrStartupPage().

276  : void
277  {
278  global $tpl; // Don't remove this, the global variables will be replaced with a ilGlobalTemplate instnace
279 
280  $this->help->setSubScreenId('login');
281 
282  $this->getLogger()->debug('Showing login page');
283 
284  $extUid = $this->http->wrapper()->query()->retrieve(
285  'ext_uid',
286  $this->refinery->byTrying([$this->refinery->kindlyTo()->string(), $this->refinery->always('')])
287  );
288 
289  $soapPw = $this->http->wrapper()->query()->retrieve(
290  'soap_pw',
291  $this->refinery->byTrying([$this->refinery->kindlyTo()->string(), $this->refinery->always('')])
292  );
293 
294  $credentials = new ilAuthFrontendCredentialsSoap(
295  $GLOBALS['DIC']->http()->request(),
296  $this->ctrl,
297  $this->setting
298  );
299 
300  $credentials->setUsername($extUid);
301  $credentials->setPassword($soapPw);
302  $credentials->tryAuthenticationOnLoginPage();
303 
304  $frontend = new ilAuthFrontendCredentialsApache($this->httpRequest, $this->ctrl);
305  $frontend->tryAuthenticationOnLoginPage();
306 
307  $tpl = self::initStartUpTemplate('tpl.login.html');
310 
311  $page_editor_html = $this->getAuthPageEditorHtml(AuthPageEditorContext::LOGIN);
312  $page_editor_html = $this->showOpenIdConnectLoginForm($page_editor_html);
313  $page_editor_html = $this->showLoginInformation($page_editor_html, $tpl);
314  $page_editor_html = $this->showLoginForm($page_editor_html, $form);
315  $page_editor_html = $this->showShibbolethLoginForm($page_editor_html);
316  $page_editor_html = $this->showSamlLoginForm($page_editor_html);
317  $page_editor_html = $this->showRegistrationLinks($page_editor_html);
318  $page_editor_html = $this->showLegalDocumentsLinks($page_editor_html);
319  $page_editor_html = $this->purgePlaceholders($page_editor_html);
320 
321  // check expired session and send message
322  if ($this->authSession->isExpired() || $this->http->wrapper()->query()->has('session_expired')) {
323  $this->mainTemplate->setOnScreenMessage('failure', $this->lng->txt('auth_err_expired'));
324  } elseif ($this->http->wrapper()->query()->has('reg_confirmation_msg')) {
325  $this->lng->loadLanguageModule('registration');
326  $message_key = $this->http->wrapper()->query()->retrieve(
327  'reg_confirmation_msg',
328  $this->refinery->kindlyTo()->string()
329  );
330  $message_type = $message_key === 'reg_account_confirmation_successful' ?
332  $this->mainTemplate->setOnScreenMessage(
333  $message_type,
334  $this->lng->txt($message_key)
335  );
336  }
337 
338  if ($page_editor_html !== '') {
339  $tpl->setVariable('LPE', $page_editor_html);
340  }
341 
342  if ($this->authSession->isExpired()) {
343  // The usr_id is is still the one of the former logged-in user, so we have to unset it
344  $this->authSession->setAuthenticated(false, ANONYMOUS_USER_ID);
345  $this->dic->user()->setId($this->authSession->getUserId());
346  $this->dic->user()->read();
347  }
348 
349  $this->mainTemplate->setPermanentLink('auth', null, 'login');
350  self::printToGlobalTemplate($tpl);
351  }
showLoginInformation(string $page_editor_html, ilGlobalTemplateInterface $tpl)
const ANONYMOUS_USER_ID
Definition: constants.php:27
purgePlaceholders(string $page_editor_html)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getAuthPageEditorHtml(AuthPageEditorContext $ipe_context)
showOpenIdConnectLoginForm(string $page_editor_html)
showShibbolethLoginForm(string $page_editor_html)
static http()
Fetches the global http state from ILIAS.
$GLOBALS["DIC"]
Definition: wac.php:53
showLoginForm(string $page_editor_html, ?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
static getContentStylePath(int $a_style_id, bool $add_random=true, bool $add_token=true)
get content style path static (to avoid full reading)
showRegistrationLinks(string $page_editor_html)
showLegalDocumentsLinks(string $page_editor_html)
mainTemplate()
showSamlLoginForm(string $page_editor_html)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLoginPageOrStartupPage()

ilStartUpGUI::showLoginPageOrStartupPage ( )
private

According to a (core) code base analysis (ILIAS 8.x until 10.x, 2024-11-05), there is curently no code that redirects to this command/action with "cmd=force_login" as query parameter in a case where the user is still considered as "logged-in". To address https://mantis.ilias.de/view.php?id=29991 we assume that we can ignore such requests to prevent "Logout without CSRF / Denial of Service for Users" and redirect the user to the start page instead.

Definition at line 204 of file class.ilStartUpGUI.php.

References $messages, ILIAS\FileDelivery\http(), ILIAS\Repository\logger(), mainTemplate(), ilInitialisation\redirectToStartingPage(), ILIAS\Repository\refinery(), retrieveMessagesFromSession(), ilSession\SESSION_CLOSE_USER, ilSession\setClosingContext(), showLoginPage(), and ILIAS\Repository\user().

Referenced by executeCommand().

204  : void
205  {
214  if ($this->authSession->isValid() && $this->authSession->getUserId() > 0 && !$this->user->isAnonymous()) {
216  }
217 
218  $is_forced_login = $this->http->wrapper()->query()->retrieve(
219  'cmd',
220  $this->refinery->byTrying([
221  $this->refinery->kindlyTo()->string(),
222  $this->refinery->always(
223  $this->http->wrapper()->post()->retrieve(
224  'cmd',
225  $this->refinery->byTrying([
226  $this->refinery->kindlyTo()->string(),
227  $this->refinery->always('')
228  ])
229  )
230  )
231  ])
232  ) === 'force_login';
233 
234  if ($is_forced_login) {
235  // Only allow this for anonymous user, see: showLoginPageOrStartupPage
236  $this->logger->debug('Force login');
237  $messages = [];
238  if ($this->authSession->isValid()) {
240  $this->logger->debug('Valid session -> logout current user');
242  $this->authSession->logout();
243 
244  $this->eventHandler->raise(
245  'components/ILIAS/Authentication',
246  'afterLogout',
247  [
248  'username' => $this->user->getLogin(),
249  'is_explicit_logout' => false,
250  ]
251  );
252 
253  $this->dic->user()->setId($this->authSession->getUserId());
254  $this->dic->user()->read();
255  }
256 
257  $this->logger->debug('Show login page');
258  foreach ($messages as $type => $content) {
259  $this->mainTemplate->setOnScreenMessage($type, $content);
260  }
261 
262  $this->showLoginPage();
263  return;
264  }
265 
266  if ($this->authSession->isValid()) {
267  $this->logger->debug('Valid session -> redirect to starting page');
269  return;
270  }
271 
272  $this->logger->debug('No valid session -> show login');
273  $this->showLoginPage();
274  }
$messages
Definition: xapiexit.php:21
static http()
Fetches the global http state from ILIAS.
showLoginPage(?ILIAS\UI\Component\Input\Container\Form\Form $form=null)
const int SESSION_CLOSE_USER
static redirectToStartingPage(string $target='')
static setClosingContext(int $a_context)
set closing context (for statistics)
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showLogout()

ilStartUpGUI::showLogout ( )
private

Definition at line 1209 of file class.ilStartUpGUI.php.

References $_SERVER, $client_id, $url, ilUtil\_getHttpPath(), ilObjUser\_isAnonymous(), ILIAS\Repository\access(), ANONYMOUS_USER_ID, CLIENT_ID, ILIAS\Repository\ctrl(), ilSession\get(), getAuthPageEditorHtml(), ilPublicSectionSettings\getInstance(), ILIAS\Repository\help(), ILIAS\FileDelivery\http(), ILIAS\Repository\lng(), mainTemplate(), ILIAS\Repository\refinery(), ROOT_FOLDER_ID, ilSession\SESSION_CLOSE_USER, ilSession\setClosingContext(), ilUtil\setCookie(), and ILIAS\Repository\user().

1209  : void
1210  {
1211  if (!$this->authSession->isExpired() &&
1212  $this->authSession->isAuthenticated() &&
1213  !ilObjUser::_isAnonymous($this->authSession->getUserId())) {
1214  $this->ctrl->redirectToURL(ilUserUtil::getStartingPointAsUrl());
1215  }
1216 
1217  $this->help->setSubScreenId('logout');
1218 
1219  $tpl = self::initStartUpTemplate('tpl.logout.html');
1220  $client_id = $this->http->wrapper()->query()->retrieve(
1221  'client_id',
1222  $this->refinery->byTrying([$this->refinery->kindlyTo()->string(), $this->refinery->always('')])
1223  );
1224 
1225  if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME']) &&
1226  $this->access->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)) {
1227  $tpl->setCurrentBlock('homelink');
1228  $tpl->setVariable('CLIENT_ID', '?client_id=' . $client_id . '&lang=' . $this->lng->getLangKey());
1229  $tpl->setVariable('TXT_HOME', $this->lng->txt('home'));
1230  $tpl->parseCurrentBlock();
1231  }
1232 
1233  $tpl->setVariable('LPE', $this->getAuthPageEditorHtml(AuthPageEditorContext::LOGOUT));
1234  $tpl->setVariable('TXT_PAGEHEADLINE', $this->lng->txt('logout'));
1235  $tpl->setVariable('TXT_LOGIN', $this->lng->txt('login_to_ilias'));
1236  $tpl->setVariable(
1237  'CLIENT_ID',
1238  '?client_id=' . $client_id . '&cmd=force_login&lang=' . $this->lng->getLangKey()
1239  );
1240 
1241  self::printToGlobalTemplate($tpl);
1242  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32
getAuthPageEditorHtml(AuthPageEditorContext $ipe_context)
static http()
Fetches the global http state from ILIAS.
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
static _isAnonymous(int $usr_id)
$client_id
Definition: ltiauth.php:66
+ Here is the call graph for this function:

◆ showOpenIdConnectLoginForm()

ilStartUpGUI::showOpenIdConnectLoginForm ( string  $page_editor_html)
private

Definition at line 1665 of file class.ilStartUpGUI.php.

References $GLOBALS, ilOpenIdConnectSettings\getInstance(), initTargetFromQuery(), ILIAS\Repository\lng(), ilOpenIdConnectSettings\LOGIN_ELEMENT_TYPE_IMG, ilOpenIdConnectSettings\LOGIN_ELEMENT_TYPE_TXT, and substituteLoginPageElements().

Referenced by showLoginPage().

1665  : string
1666  {
1667  $oidc_settings = ilOpenIdConnectSettings::getInstance();
1668  if ($oidc_settings->getActive()) {
1669  $tpl = new ilTemplate('tpl.login_element.html', true, true, 'components/ILIAS/OpenIdConnect');
1670 
1671  $this->lng->loadLanguageModule('auth');
1672  $tpl->setVariable('TXT_OIDCONNECT_HEADER', $this->lng->txt('auth_oidc_login_element_info'));
1673 
1674  $target = $this->initTargetFromQuery();
1675  $target_str = empty($target) ? '' : ('?target=' . $target);
1676  switch ($oidc_settings->getLoginElementType()) {
1678  $tpl->setVariable('SCRIPT_OIDCONNECT_T', './openidconnect.php' . $target_str);
1679  $tpl->setVariable('TXT_OIDC', $oidc_settings->getLoginElemenText());
1680  break;
1681 
1683  $tpl->setVariable('SCRIPT_OIDCONNECT_I', './openidconnect.php' . $target_str);
1684  $tpl->setVariable('IMG_SOURCE', $oidc_settings->getImageFilePath());
1685  break;
1686  }
1687 
1688  return $this->substituteLoginPageElements(
1689  $GLOBALS['tpl'],
1690  $page_editor_html,
1691  $tpl->get(),
1692  '[list-openid-connect-login]',
1693  'OPEN_ID_CONNECT_LOGIN_FORM'
1694  );
1695  }
1696 
1697  return $page_editor_html;
1698  }
$GLOBALS["DIC"]
Definition: wac.php:53
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showRegistrationLinks()

ilStartUpGUI::showRegistrationLinks ( string  $page_editor_html)
private

Definition at line 923 of file class.ilStartUpGUI.php.

References $_SERVER, ilRegistrationSettings\_lookupRegistrationType(), ILIAS\Repository\access(), ANONYMOUS_USER_ID, CLIENT_ID, ILIAS\Repository\ctrl(), ilPublicSectionSettings\getInstance(), ilRegistrationSettings\IL_REG_DISABLED, ILIAS\Repository\lng(), ROOT_FOLDER_ID, and substituteLoginPageElements().

Referenced by showLoginPage().

923  : string
924  {
925  global $tpl;
926 
927  $rtpl = new ilTemplate('tpl.login_registration_links.html', true, true, 'components/ILIAS/Init');
928 
929  // allow new registrations?
931  $rtpl->setCurrentBlock('new_registration');
932  $rtpl->setVariable('REGISTER', $this->lng->txt('registration'));
933  $rtpl->setVariable(
934  'CMD_REGISTER',
935  $this->ctrl->getLinkTargetByClass(ilAccountRegistrationGUI::class)
936  );
937  $rtpl->parseCurrentBlock();
938  }
939  // allow password assistance? Surpress option if Authmode is not local database
940  if ($this->setting->get('password_assistance')) {
941  $rtpl->setCurrentBlock('password_assistance');
942  $rtpl->setVariable('FORGOT_PASSWORD', $this->lng->txt('forgot_password'));
943  $rtpl->setVariable('FORGOT_USERNAME', $this->lng->txt('forgot_username'));
944  $rtpl->setVariable(
945  'CMD_FORGOT_PASSWORD',
946  $this->ctrl->getLinkTargetByClass(ilPasswordAssistanceGUI::class)
947  );
948  $rtpl->setVariable(
949  'CMD_FORGOT_USERNAME',
950  $this->ctrl->getLinkTargetByClass(ilPasswordAssistanceGUI::class, 'showUsernameAssistanceForm')
951  );
952  $rtpl->setVariable('LANG_ID', $this->lng->getLangKey());
953  $rtpl->parseCurrentBlock();
954  }
955 
956  if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME']) &&
957  $this->access->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)) {
958  $rtpl->setCurrentBlock('homelink');
959  $rtpl->setVariable(
960  'CLIENT_ID',
961  '?client_id=' . CLIENT_ID . '&lang=' . $this->lng->getLangKey()
962  );
963  $rtpl->setVariable('TXT_HOME', $this->lng->txt('home'));
964  $rtpl->parseCurrentBlock();
965  }
966 
967  return $this->substituteLoginPageElements(
968  $tpl,
969  $page_editor_html,
970  $rtpl->get(),
971  '[list-registration-link]',
972  'REG_PWD_CLIENT_LINKS'
973  );
974  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
const CLIENT_ID
Definition: constants.php:41
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showSamlIdpSelection()

ilStartUpGUI::showSamlIdpSelection ( ilSamlAuth  $auth,
array  $idps 
)
private
Parameters
list<ilSamlIdp>$idps

Definition at line 1890 of file class.ilStartUpGUI.php.

References $components, ILIAS\Repository\ctrl(), ILIAS\Repository\help(), ILIAS\Repository\lng(), and mainTemplate().

Referenced by doSamlAuthentication().

1890  : void
1891  {
1892  $this->help->setSubScreenId('saml_idp_selection');
1893 
1894  self::initStartUpTemplate(['tpl.saml_idp_selection.html', 'components/ILIAS/Saml']);
1895 
1896  $this->ctrl->setTargetScript('saml.php');
1897  $items = [];
1898  foreach ($idps as $idp) {
1899  $this->ctrl->setParameter($this, 'saml_idp_id', $idp->getIdpId());
1900  $this->ctrl->setParameter($this, 'idpentityid', urlencode($idp->getEntityId()));
1901 
1902  $items[] = $this->ui_factory->link()->standard(
1903  $idp->getEntityId(),
1904  $this->ctrl->getLinkTarget($this, 'doSamlAuthentication')
1905  );
1906  }
1907 
1908  $components = [
1909  $this->ui_factory->panel()->standard(
1910  $this->lng->txt('auth_saml_idp_selection_table_title'),
1911  [
1912  $this->ui_factory->messageBox()->info($this->lng->txt('auth_saml_idp_selection_table_desc')),
1913  $this->ui_factory->listing()->unordered(
1914  array_map(
1915  fn($item) => $this->ui_renderer->render($item),
1916  $items
1917  )
1918  )
1919  ]
1920  )
1921  ];
1922 
1923  $this->mainTemplate->setVariable('CONTENT', $this->ui_renderer->render($components));
1924  $this->mainTemplate->printToStdout('DEFAULT', false);
1925  }
$components
mainTemplate()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showSamlLoginForm()

ilStartUpGUI::showSamlLoginForm ( string  $page_editor_html)
private

Definition at line 1636 of file class.ilStartUpGUI.php.

References $GLOBALS, ilSamlIdp\getActiveIdpList(), ilSamlSettings\getInstance(), initTargetFromQuery(), ILIAS\Repository\lng(), ilUtil\stripSlashes(), and substituteLoginPageElements().

Referenced by showLoginPage().

1636  : string
1637  {
1638  if (count(ilSamlIdp::getActiveIdpList()) > 0 && ilSamlSettings::getInstance()->isDisplayedOnLoginPage()) {
1639  $tpl = new ilTemplate('tpl.login_form_saml.html', true, true, 'components/ILIAS/Saml');
1640 
1641  $return = '';
1642  $target = $this->initTargetFromQuery();
1643  if ($target !== '') {
1644  $return = '?returnTo=' . urlencode(ilUtil::stripSlashes($target));
1645  }
1646 
1647  $tpl->setVariable('SAML_SCRIPT_URL', './saml.php' . $return);
1648  $tpl->setVariable('TXT_LOGIN', $this->lng->txt('saml_log_in'));
1649  $tpl->setVariable('LOGIN_TO_ILIAS_VIA_SAML', $this->lng->txt('login_to_ilias_via_saml'));
1650  $tpl->setVariable('TXT_SAML_LOGIN_TXT', $this->lng->txt('saml_login_form_txt'));
1651  $tpl->setVariable('TXT_SAML_LOGIN_INFO_TXT', $this->lng->txt('saml_login_form_info_txt'));
1652 
1653  return $this->substituteLoginPageElements(
1654  $GLOBALS['tpl'],
1655  $page_editor_html,
1656  $tpl->get(),
1657  '[list-saml-login]',
1658  'SAML_LOGIN_FORM'
1659  );
1660  }
1661 
1662  return $page_editor_html;
1663  }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
$GLOBALS["DIC"]
Definition: wac.php:53
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
static getActiveIdpList()
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showShibbolethLoginForm()

ilStartUpGUI::showShibbolethLoginForm ( string  $page_editor_html)
private

Definition at line 795 of file class.ilStartUpGUI.php.

References $GLOBALS, initTargetFromQuery(), ILIAS\Repository\lng(), and substituteLoginPageElements().

Referenced by showLoginPage().

795  : string
796  {
797  $target = $this->initTargetFromQuery();
798 
799  if ($this->setting->get('shib_active')) {
800  $tpl = new ilTemplate('tpl.login_form_shibboleth.html', true, true, 'components/ILIAS/Init');
801 
802  $tpl->setVariable(
803  'SHIB_FORMACTION',
804  './shib_login.php'
805  ); // Bugfix http://ilias.de/mantis/view.php?id=10662 {$tpl->setVariable('SHIB_FORMACTION', $this->ctrl->getFormAction($this));}
806  $federation_name = $this->setting->get('shib_federation_name');
807  $admin_mail = ' <a href="mailto:' . $this->setting->get('admin_email') . '">ILIAS ' . $this->lng->txt(
808  'administrator'
809  ) . '</a>.';
810  if ($this->setting->get('shib_hos_type') === 'external_wayf') {
811  $tpl->setCurrentBlock('shibboleth_login');
812  $tpl->setVariable('TXT_SHIB_LOGIN', $this->lng->txt('login_to_ilias_via_shibboleth'));
813  $tpl->setVariable('IL_TARGET', $target);
814  $tpl->setVariable('TXT_SHIB_FEDERATION_NAME', $this->setting->get('shib_federation_name'));
815  $tpl->setVariable('TXT_SHIB_LOGIN_BUTTON', $this->setting->get('shib_login_button'));
816  $tpl->setVariable(
817  'TXT_SHIB_LOGIN_INSTRUCTIONS',
818  sprintf(
819  $this->lng->txt('shib_general_login_instructions'),
820  $federation_name,
821  $admin_mail
822  )
823  );
824  $tpl->setVariable('TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS', $this->setting->get('shib_login_instructions'));
825  $tpl->parseCurrentBlock();
826  } elseif ($this->setting->get('shib_hos_type') == 'embedded_wayf') {
827  $tpl->setCurrentBlock('shibboleth_custom_login');
828  $customInstructions = stripslashes($this->setting->get('shib_login_instructions'));
829  $tpl->setVariable('TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS', $customInstructions);
830  $tpl->parseCurrentBlock();
831  } else {
832  $tpl->setCurrentBlock('shibboleth_wayf_login');
833  $tpl->setVariable('TXT_SHIB_LOGIN', $this->lng->txt('login_to_ilias_via_shibboleth'));
834  $tpl->setVariable('TXT_SHIB_FEDERATION_NAME', $this->setting->get('shib_federation_name'));
835  $tpl->setVariable(
836  'TXT_SELECT_HOME_ORGANIZATION',
837  sprintf(
838  $this->lng->txt('shib_select_home_organization'),
839  $this->setting->get('shib_federation_name')
840  )
841  );
842  $tpl->setVariable('TXT_CONTINUE', $this->lng->txt('btn_next'));
843  $tpl->setVariable('TXT_SHIB_HOME_ORGANIZATION', $this->lng->txt('shib_home_organization'));
844  $tpl->setVariable(
845  'TXT_SHIB_LOGIN_INSTRUCTIONS',
846  sprintf(
847  $this->lng->txt('shib_general_wayf_login_instructions'),
848  $admin_mail
849  )
850  );
851  $tpl->setVariable('TXT_SHIB_CUSTOM_LOGIN_INSTRUCTIONS', $this->setting->get('shib_login_instructions'));
852 
853  $ilShibbolethWAYF = new ilShibbolethWAYF();
854 
855  $tpl->setVariable('TXT_SHIB_INVALID_SELECTION', $ilShibbolethWAYF->showNotice());
856  $tpl->setVariable('SHIB_IDP_LIST', $ilShibbolethWAYF->generateSelection());
857  $tpl->setVariable('ILW_TARGET', $target);
858  $tpl->parseCurrentBlock();
859  }
860 
861  return $this->substituteLoginPageElements(
862  $GLOBALS['tpl'],
863  $page_editor_html,
864  $tpl->get(),
865  '[list-shibboleth-login-form]',
866  'SHIB_LOGIN_FORM'
867  );
868  }
869 
870  return $page_editor_html;
871  }
$GLOBALS["DIC"]
Definition: wac.php:53
Class ShibbolethWAYF.
substituteLoginPageElements( $tpl, string $page_editor_html, string $element_html, string $placeholder, string $fallback_tplvar)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ substituteLoginPageElements()

ilStartUpGUI::substituteLoginPageElements (   $tpl,
string  $page_editor_html,
string  $element_html,
string  $placeholder,
string  $fallback_tplvar 
)
private
Parameters
ilTemplate | ilGlobalTemplateInterface$tpl

Definition at line 876 of file class.ilStartUpGUI.php.

Referenced by showLegalDocumentsLinks(), showLoginForm(), showOpenIdConnectLoginForm(), showRegistrationLinks(), showSamlLoginForm(), and showShibbolethLoginForm().

882  : string {
883  if ($page_editor_html === '') {
884  $tpl->setVariable($fallback_tplvar, $element_html);
885  return $page_editor_html;
886  }
887 
888  if (stripos($page_editor_html, $placeholder) === false) {
889  $tpl->setVariable($fallback_tplvar, $element_html);
890  return $page_editor_html;
891  }
892 
893  return str_replace($placeholder, $element_html, $page_editor_html);
894  }
+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilStartUpGUI::$access
private

Definition at line 58 of file class.ilStartUpGUI.php.

◆ $authSession

ilAuthSession ilStartUpGUI::$authSession
private

Definition at line 55 of file class.ilStartUpGUI.php.

◆ $ctrl

ilCtrlInterface ilStartUpGUI::$ctrl
private

Definition at line 48 of file class.ilStartUpGUI.php.

◆ $dic

ILIAS DI Container ilStartUpGUI::$dic
private

Definition at line 54 of file class.ilStartUpGUI.php.

◆ $eventHandler

ilAppEventHandler ilStartUpGUI::$eventHandler
private

Definition at line 56 of file class.ilStartUpGUI.php.

◆ $forced_cmd

string ilStartUpGUI::$forced_cmd = ''
staticprivate

Definition at line 46 of file class.ilStartUpGUI.php.

◆ $help

ilHelpGUI ilStartUpGUI::$help
private

Definition at line 62 of file class.ilStartUpGUI.php.

◆ $http

HTTPServices ilStartUpGUI::$http
private

Definition at line 61 of file class.ilStartUpGUI.php.

◆ $httpRequest

ServerRequestInterface ilStartUpGUI::$httpRequest
private

Definition at line 53 of file class.ilStartUpGUI.php.

Referenced by doSamlAuthentication().

◆ $lng

ilLanguage ilStartUpGUI::$lng
private

Definition at line 49 of file class.ilStartUpGUI.php.

Referenced by buildStandardLoginForm().

◆ $logger

ilLogger ilStartUpGUI::$logger
private

Definition at line 50 of file class.ilStartUpGUI.php.

Referenced by getLogger().

◆ $mainTemplate

ilGlobalTemplateInterface ilStartUpGUI::$mainTemplate
private

Definition at line 51 of file class.ilStartUpGUI.php.

◆ $refinery

RefineryFactory ilStartUpGUI::$refinery
private

Definition at line 60 of file class.ilStartUpGUI.php.

◆ $setting

ilSetting ilStartUpGUI::$setting
private

Definition at line 57 of file class.ilStartUpGUI.php.

◆ $ui_factory

ILIAS UI Factory ilStartUpGUI::$ui_factory
private

Definition at line 63 of file class.ilStartUpGUI.php.

◆ $ui_renderer

ILIAS UI Renderer ilStartUpGUI::$ui_renderer
private

Definition at line 64 of file class.ilStartUpGUI.php.

◆ $user

ilObjUser ilStartUpGUI::$user
private

Definition at line 52 of file class.ilStartUpGUI.php.

◆ PROP_ACCOUNT_MIGRATION

const ilStartUpGUI::PROP_ACCOUNT_MIGRATION = 'account_migration'
private

Definition at line 42 of file class.ilStartUpGUI.php.

◆ PROP_ACCOUNT_MIGRATION_MIGRATE

const ilStartUpGUI::PROP_ACCOUNT_MIGRATION_MIGRATE = 'account_migration_migrate'
private

Definition at line 44 of file class.ilStartUpGUI.php.

◆ PROP_ACCOUNT_MIGRATION_NEW

const ilStartUpGUI::PROP_ACCOUNT_MIGRATION_NEW = 'account_migration_new'
private

Definition at line 43 of file class.ilStartUpGUI.php.

◆ PROP_AUTH_MODE

const ilStartUpGUI::PROP_AUTH_MODE = 'auth_mode'
private

Definition at line 40 of file class.ilStartUpGUI.php.

◆ PROP_CODE

const ilStartUpGUI::PROP_CODE = 'code'
private

Definition at line 41 of file class.ilStartUpGUI.php.

◆ PROP_PASSWORD

const ilStartUpGUI::PROP_PASSWORD = 'password'
private

Definition at line 39 of file class.ilStartUpGUI.php.

◆ PROP_USERNAME

const ilStartUpGUI::PROP_USERNAME = 'username'
private

Definition at line 38 of file class.ilStartUpGUI.php.


The documentation for this class was generated from the following file: