ILIAS  trunk Revision v11.0_alpha-1866-gfa368f7776e
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilInitialisation Class Reference

ILIAS Initialisation Utility Class perform basic setup: init database handler, load configuration file, init user authentification & error handler, load object type definitions. More...

+ Inheritance diagram for ilInitialisation:
+ Collaboration diagram for ilInitialisation:

Static Public Member Functions

static initFileUploadService (\ILIAS\DI\Container $dic)
 Initializes the file upload service. More...
 
static setSessionHandler ()
 set session handler to db Used in Soap/CAS More...
 
static initUserAccount ()
 Init user with current account id. More...
 
static goToPublicSection ()
 go to public section More...
 
static reinitILIAS ()
 
static reInitUser ()
 
static initILIAS ()
 ilias initialisation More...
 
static handleErrorReporting ()
 Set error reporting level. More...
 
static resumeUserSession ()
 Resume an existing user session. More...
 
static applyPluginManipulationsToUiFramework (\ILIAS\DI\Container $c)
 
static redirectToStartingPage (string $target='')
 

Static Protected Member Functions

static removeUnsafeCharacters ()
 Remove unsafe characters from GET. More...
 
static recursivelyRemoveUnsafeCharacters ($var)
 
static requireCommonIncludes ()
 get common include code files More...
 
static initIliasIniFile ()
 This method provides a global instance of class ilIniFile for the ilias.ini.php file in variable $ilIliasIniFile. More...
 
static initResourceStorage ()
 
static initUploadPolicies (\ILIAS\DI\Container $dic)
 
static buildHTTPPath ()
 
static determineClient ()
 This method determines the current client and sets the constant CLIENT_ID. More...
 
static initClientIniFile ()
 This method provides a global instance of class ilIniFile for the client.ini.php file in variable $ilClientIniFile. More...
 
static handleMaintenanceMode ()
 handle maintenance mode More...
 
static initDatabase ()
 initialise database object $ilDB More...
 
static initGlobalCache ()
 
static setCookieConstants ()
 
static setSessionCookieParams ()
 set session cookie params More...
 
static initCron (\ILIAS\DI\Container $c)
 
static initCustomObjectIcons (\ILIAS\DI\Container $c)
 
static initAvatar (\ILIAS\DI\Container $c)
 
static initLegalDocuments (Container $c)
 
static initAccessibilityControlConcept (\ILIAS\DI\Container $c)
 
static initSettings ()
 initialise $ilSettings object and define constants Used in Soap More...
 
static initStyle ()
 provide $styleDefinition object More...
 
static initLocale ()
 Init Locale. More...
 
static goToLogin ()
 go to login More...
 
static initAccessHandling ()
 $ilAccess and $rbac... More...
 
static initLog ()
 Init log instance. More...
 
static initGlobal (string $a_name, $a_class, ?string $a_source_file=null, ?bool $destroy_existing=false)
 
static abortAndDie (string $a_message)
 
static handleDevMode ()
 Prepare developer tools. More...
 
static initSession ()
 Init auth session. More...
 
static initCore ()
 Init core objects (level 0) More...
 
static initClient ()
 Init client-based objects (level 1) More...
 
static initUser ()
 Init user / authentification (level 2) More...
 
static handleAuthenticationFail ()
 
static initHTTPServices (\ILIAS\DI\Container $container)
 
static initComponentService (\ILIAS\DI\Container $container)
 
static initHTML ()
 init HTML output (level 3) More...
 
static blockedAuthentication (string $a_current_script)
 Block authentication based on current request. More...
 
static translateMessage (string $a_message_id, ?array $a_message_static=null)
 Translate message if possible. More...
 
static redirect (string $a_target, string $a_message_id='', ?array $a_message_static=null)
 Redirects to target url if context supports it. More...
 

Static Protected Attributes

static bool $already_initialized = false
 

Static Private Member Functions

static getClientIdTransformation ()
 Refinery is not initialized early enough to provide a transformation to be used with the implementation to retrieve the parameters. More...
 
static setClientIdCookie ()
 
static initGlobalScreen (\ILIAS\DI\Container $c)
 
static initBackgroundTasks (\ILIAS\DI\Container $c)
 
static initInjector (\ILIAS\DI\Container $c)
 
static initKioskMode (\ILIAS\DI\Container $c)
 
static initLearningObjectMetadata (\ILIAS\DI\Container $c)
 

Detailed Description

ILIAS Initialisation Utility Class perform basic setup: init database handler, load configuration file, init user authentification & error handler, load object type definitions.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Sascha Hofmann shofm.nosp@m.ann@.nosp@m.datab.nosp@m.ay.d.nosp@m.e
Version
$Id$

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

Member Function Documentation

◆ abortAndDie()

static ilInitialisation::abortAndDie ( string  $a_message)
staticprotected

Definition at line 1105 of file class.ilInitialisation.php.

References $GLOBALS.

1105  : void
1106  {
1107  if (isset($GLOBALS['ilLog'])) {
1108  $GLOBALS['ilLog']->write("Fatal Error: ilInitialisation - " . $a_message);
1109  $GLOBALS['ilLog']->logStack();
1110  }
1111  die($a_message);
1112  }
$GLOBALS["DIC"]
Definition: wac.php:53

◆ applyPluginManipulationsToUiFramework()

static ilInitialisation::applyPluginManipulationsToUiFramework ( \ILIAS\DI\Container  $c)
static
Deprecated:
this mechanism will be removed as part of the component revision and the refactoring to the new bootstrap mechanism.

Definition at line 1499 of file class.ilInitialisation.php.

References $_COOKIE, $_GET, $container, and XapiProxy\$plugin.

1499  : void
1500  {
1501  $component_repository = $c["component.repository"];
1502  $component_factory = $c["component.factory"];
1503  foreach ($component_repository->getPlugins() as $pl) {
1504  if (!$pl->isActive()) {
1505  continue;
1506  }
1507  $plugin = $component_factory->getPlugin($pl->getId());
1508  $c['ui.renderer'] = $plugin->exchangeUIRendererAfterInitialization($c);
1509 
1510  foreach ($c->keys() as $key) {
1511  if (strpos($key, "ui.factory") === 0) {
1512  $c[$key] = $plugin->exchangeUIFactoryAfterInitialization($key, $c);
1513  }
1514  }
1515  }
1516  }
$c
Definition: deliver.php:25

◆ blockedAuthentication()

static ilInitialisation::blockedAuthentication ( string  $a_current_script)
staticprotected

Block authentication based on current request.

Definition at line 1628 of file class.ilInitialisation.php.

References $_GET, $DIC, ANONYMOUS_USER_ID, ilContext\CONTEXT_APACHE_SSO, ilContext\CONTEXT_LTI_PROVIDER, ilContext\CONTEXT_SAML, ilContext\CONTEXT_SHIBBOLETH, ilContext\CONTEXT_WAC, ilContext\CONTEXT_WEBDAV, ilLoggerFactory\getLogger(), ilContext\getType(), and null.

1628  : bool
1629  {
1630  global $DIC;
1631 
1633  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for WAC request.');
1634  return true;
1635  }
1637  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for sso request.');
1638  return true;
1639  }
1641  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for webdav request');
1642  return true;
1643  }
1645  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for shibboleth request.');
1646  return true;
1647  }
1649  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for lti provider requests.');
1650  return true;
1651  }
1653  ilLoggerFactory::getLogger('init')->debug('Blocked authentication for SAML request.');
1654  return true;
1655  }
1656  if (
1657  $a_current_script == "register.php" ||
1658  $a_current_script == "pwassist.php" ||
1659  $a_current_script == "confirmReg.php" ||
1660  $a_current_script == "il_securimage_play.php" ||
1661  $a_current_script == "il_securimage_show.php" ||
1662  $a_current_script == 'login.php'
1663  ) {
1664  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for script: ' . $a_current_script);
1665  return true;
1666  }
1667 
1668  // @todo refinery undefined
1669  $requestBaseClass = strtolower((string) ($_GET['baseClass'] ?? ''));
1670  if ($requestBaseClass == strtolower(ilStartUpGUI::class)) {
1671  $requestCmdClass = strtolower((string) ($_GET['cmdClass'] ?? ''));
1672  if (
1673  $requestCmdClass == strtolower(ilAccountRegistrationGUI::class) ||
1674  $requestCmdClass == strtolower(ilPasswordAssistanceGUI::class)
1675  ) {
1676  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmdClass: ' . $requestCmdClass);
1677  return true;
1678  }
1679  $cmd = $DIC->ctrl()->getCmd();
1680 
1681  if (in_array($cmd, [
1682  'showLegalDocuments',
1683  'showAccountMigration',
1684  'migrateAccount',
1685  'processCode',
1686  'showLoginPage',
1687  'showLogout',
1688  'doStandardAuthentication',
1689  'doCasAuthentication',
1690  ], true)) {
1691  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmd: ' . $cmd);
1692  return true;
1693  }
1694  }
1695 
1696  $target = '';
1697  if ($DIC->http()->wrapper()->query()->has('target')) {
1698  // @todo refinery undefined
1699  $target = $_GET['target'];
1700  }
1701 
1702  // #12884
1703  if (
1704  ($a_current_script == "goto.php" && $target == "impr_0") ||
1705  $requestBaseClass == strtolower(ilImprintGUI::class)
1706  ) {
1707  // @todo refinery undefind
1708  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for baseClass: ' . ($_GET['baseClass'] ?? ""));
1709  return true;
1710  }
1711 
1712  if (
1713  (strtolower($requestCmdClass ?? "") === strtolower(ilAccessibilityControlConceptGUI::class))
1714  ) {
1715  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmdClass: ' . $requestCmdClass);
1716  return true;
1717  }
1718 
1719  if ($a_current_script == 'goto.php' && in_array($target, array(
1720  'usr_registration',
1721  'usr_nameassist',
1722  'usr_pwassist',
1723  'usr_agreement'
1724  ))) {
1725  ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for goto target: ' . $target);
1726  return true;
1727  }
1728 
1729 
1730  $current_ref_id = $DIC->http()->wrapper()->query()->has('ref_id')
1731  ? $DIC->http()->wrapper()->query()->retrieve('ref_id', $DIC->refinery()->kindlyTo()->int())
1732  : null;
1733 
1734  if (null !== $current_ref_id
1735  && $DIC->user()->getId() === 0
1736  && $DIC->access()->checkAccessOfUser(
1738  'visible',
1739  '',
1740  $current_ref_id
1741  )) {
1742  return true;
1743  }
1744 
1745 
1746  ilLoggerFactory::getLogger('auth')->debug('Authentication required');
1747  return false;
1748  }
$_GET["client_id"]
Definition: webdav.php:30
const CONTEXT_WAC
const ANONYMOUS_USER_ID
Definition: constants.php:27
static getLogger(string $a_component_id)
Get component logger.
const CONTEXT_WEBDAV
const CONTEXT_LTI_PROVIDER
const CONTEXT_SHIBBOLETH
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
const CONTEXT_SAML
global $DIC
Definition: shib_login.php:22
static getType()
Get context type.
const CONTEXT_APACHE_SSO
+ Here is the call graph for this function:

◆ buildHTTPPath()

static ilInitialisation::buildHTTPPath ( )
staticprotected

Definition at line 360 of file class.ilInitialisation.php.

References $_SERVER, and $DIC.

360  : bool
361  {
362  global $DIC;
363 
364  return define(
365  'ILIAS_HTTP_PATH',
366  (new \ILIAS\Init\Environment\HttpPathBuilder(
367  $DIC[\ILIAS\Data\Factory::class],
368  $DIC->settings(),
369  $DIC['https'],
370  $DIC['ilIliasIniFile'],
371  $_SERVER
372  ))->build()->getBaseURI()
373  );
374  }
Interface Observer Contains several chained tasks and infos about them.
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
global $DIC
Definition: shib_login.php:22

◆ determineClient()

static ilInitialisation::determineClient ( )
staticprotected

This method determines the current client and sets the constant CLIENT_ID.

Definition at line 380 of file class.ilInitialisation.php.

References $_COOKIE, $_GET, $DIC, ilUtil\setCookie(), and ilContext\supportsPersistentSessions().

380  : void
381  {
382  if (defined('CLIENT_ID')) {
383  return;
384  }
385  global $DIC;
386  $df = $DIC[\ILIAS\Data\Factory::class];
387 
388  // check whether ini file object exists
389  if (!$DIC->isDependencyAvailable('iliasIni')) {
390  self::abortAndDie('Fatal Error: ilInitialisation::determineClient called without initialisation of ILIAS ini file object.');
391  }
392 
393  $in_unit_tests = defined('IL_PHPUNIT_TEST');
394  $context_supports_persitent_session = ilContext::supportsPersistentSessions();
395  $can_set_cookie = !$in_unit_tests && $context_supports_persitent_session;
396  $has_request_client_id = $DIC->http()->wrapper()->query()->has('client_id');
397  $has_cookie_client_id = $DIC->http()->cookieJar()->has('ilClientId');
398 
399  // determine the available clientIds (default, request, cookie)
400  $default_client_id = $DIC->iliasIni()->readVariable('clients', 'default');
401 
402  if ($DIC->http()->wrapper()->query()->has('client_id')) {
403  $client_id_from_get = $DIC->http()->wrapper()->query()->retrieve(
404  'client_id',
405  self::getClientIdTransformation()
406  );
407  }
408  if ($DIC->http()->wrapper()->cookie()->has('ilClientId')) {
409  $client_id_from_cookie = $DIC->http()->wrapper()->cookie()->retrieve(
410  'ilClientId',
411  self::getClientIdTransformation()
412  );
413  }
414 
415  // set the clientId by availability: 1. request, 2. cookie, fallback to defined default
416  $client_id_to_use = '';
417  if (isset($client_id_from_get) && $client_id_from_get !== '') {
418  $client_id_to_use = $client_id_from_get;
419  }
420  // we found a client_id in $GET
421  if (isset($client_id_from_get) && strlen($client_id_from_get) > 0) {
422  // @todo refinery undefined
423  $client_id_to_use = $_GET['client_id'] = $df->clientId($client_id_from_get)->toString();
424  if ($can_set_cookie) {
425  ilUtil::setCookie('ilClientId', $client_id_to_use);
426  }
427  } else {
428  $client_id_to_use = $default_client_id;
429  if (!isset($_COOKIE['ilClientId'])) {
430  ilUtil::setCookie('ilClientId', $client_id_to_use);
431  }
432  }
433 
434  $client_id_to_use = $client_id_to_use ?: $default_client_id;
435 
436  define('CLIENT_ID', $df->clientId($client_id_to_use)->toString());
437  }
$_GET["client_id"]
Definition: webdav.php:30
static setCookie(string $a_cookie_name, string $a_cookie_value='', bool $a_also_set_super_global=true, bool $a_set_cookie_invalid=false)
global $DIC
Definition: shib_login.php:22
static supportsPersistentSessions()
Check if context supports persistent session handling.
$_COOKIE[session_name()]
Definition: xapitoken.php:54
+ Here is the call graph for this function:

◆ getClientIdTransformation()

static ilInitialisation::getClientIdTransformation ( )
staticprivate

Refinery is not initialized early enough to provide a transformation to be used with the implementation to retrieve the parameters.

Instead, this implementation here will be used.

Returns
Transformation implementation of a transformation to get the clientId.

Definition at line 446 of file class.ilInitialisation.php.

References ILIAS\Refinery\__invoke(), ILIAS\Refinery\applyTo(), ILIAS\Data\Result\then(), and ILIAS\Refinery\transform().

447  {
448  return new class () implements Transformation {
452  public function transform($from): string
453  {
454  if (!is_string($from)) {
455  throw new InvalidArgumentException(__METHOD__ . " the argument is not a string.");
456  }
457  return strip_tags($from);
458  }
459 
463  public function applyTo(Result $result): Result
464  {
465  return $result->then(function ($value): Result {
466  try {
467  return new Ok($this->transform($value));
468  } catch (Exception $exception) {
469  return new Error($exception);
470  }
471  });
472  }
473 
477  public function __invoke($from): string
478  {
479  return $this->transform($from);
480  }
481  };
482  }
then(callable $f)
Get a new result from the callable or do nothing if this is an error.
A result encapsulates a value or an error and simplifies the handling of those.
Definition: Ok.php:30
A transformation is a function from one datatype to another.
+ Here is the call graph for this function:

◆ goToLogin()

static ilInitialisation::goToLogin ( )
staticprotected

go to login

Definition at line 964 of file class.ilInitialisation.php.

References $client_id, $DIC, ilLanguage\getFallbackInstance(), ilLanguage\getGlobalInstance(), ilLoggerFactory\getLogger(), ilSession\SESSION_CLOSE_EXPIRE, ilSession\SESSION_CLOSE_LOGIN, and ilSession\setClosingContext().

964  : void
965  {
966  global $DIC;
967 
968  $session_expired = false;
969  ilLoggerFactory::getLogger('init')->debug('Redirecting to login page.');
970 
971  if ($DIC['ilAuthSession']->isExpired()) {
973  $session_expired = true;
974  }
975  if (!$DIC['ilAuthSession']->isAuthenticated()) {
977  }
978 
979  $target = $DIC->http()->wrapper()->query()->has('target')
980  ? $DIC->http()->wrapper()->query()->retrieve(
981  'target',
982  $DIC->refinery()->kindlyTo()->string()
983  )
984  : '';
985 
986  if (strlen($target)) {
987  $target = "target=" . $target . "&";
988  }
989 
990  $client_id = $DIC->http()->wrapper()->cookie()->retrieve(
991  'ilClientId',
992  $DIC->refinery()->byTrying([
993  $DIC->refinery()->kindlyTo()->string(),
994  $DIC->refinery()->always('')
995  ])
996  );
997 
998  $script = "login.php?" . $target . "client_id=" . $client_id;
999  $script .= $session_expired ? "&session_expired=1" : "";
1000 
1001  self::redirect(
1002  $script,
1003  "init_error_authentication_fail",
1004  array(
1005  "en" => "Authentication failed.",
1006  "de" => "Authentifizierung fehlgeschlagen."
1007  )
1008  );
1009  }
static getLogger(string $a_component_id)
Get component logger.
const SESSION_CLOSE_LOGIN
const SESSION_CLOSE_EXPIRE
global $DIC
Definition: shib_login.php:22
static setClosingContext(int $a_context)
set closing context (for statistics)
$client_id
Definition: ltiauth.php:66
+ Here is the call graph for this function:

◆ goToPublicSection()

static ilInitialisation::goToPublicSection ( )
static

go to public section

Definition at line 910 of file class.ilInitialisation.php.

References $_SERVER, $DIC, $GLOBALS, ANONYMOUS_USER_ID, ROOT_FOLDER_ID, ilSession\SESSION_CLOSE_EXPIRE, ilSession\SESSION_CLOSE_PUBLIC, and ilSession\setClosingContext().

Referenced by ilAuthUtils\handleForcedAuthentication(), and ilStartUpGUI\processIndexPHP().

910  : void
911  {
912  global $DIC;
913 
914  if (ANONYMOUS_USER_ID == "") {
915  self::abortAndDie("Public Section enabled, but no Anonymous user found.");
916  }
917 
918  $session_destroyed = false;
919  if ($DIC['ilAuthSession']->isExpired()) {
920  $session_destroyed = true;
922  }
923  if (!$DIC['ilAuthSession']->isAuthenticated()) {
924  $session_destroyed = true;
926  }
927 
928  if ($session_destroyed) {
929  $GLOBALS['DIC']['ilAuthSession']->setAuthenticated(true, ANONYMOUS_USER_ID);
930  }
931 
932  self::initUserAccount();
933 
934  $target = '';
935  if ($DIC->http()->wrapper()->query()->has('target')) {
936  $target = $DIC->http()->wrapper()->query()->retrieve(
937  'target',
938  $DIC->refinery()->kindlyTo()->string()
939  );
940  }
941 
942  // if target given, try to go there
943  if (strlen($target)) {
944  // when we are already "inside" goto.php no redirect is needed
945  $current_script = substr(strrchr($_SERVER["PHP_SELF"], "/"), 1);
946  if ($current_script == "goto.php") {
947  return;
948  }
949  // goto will check if target is accessible or redirect to login
950  self::redirect("goto.php?target=" . $target);
951  }
952 
953  // we do not know if ref_id of request is accesible, so redirecting to root
954  self::redirect(
955  "ilias.php?baseClass=ilrepositorygui&reloadpublic=1&cmd=&ref_id=" . (defined(
956  'ROOT_FOLDER_ID'
957  ) ? (string) ROOT_FOLDER_ID : '0')
958  );
959  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32
const SESSION_CLOSE_EXPIRE
$GLOBALS["DIC"]
Definition: wac.php:53
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
global $DIC
Definition: shib_login.php:22
const SESSION_CLOSE_PUBLIC
static setClosingContext(int $a_context)
set closing context (for statistics)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleAuthenticationFail()

static ilInitialisation::handleAuthenticationFail ( )
staticprotected

Definition at line 1427 of file class.ilInitialisation.php.

References $_SERVER, $DIC, ilObjUser\_isAnonymous(), ANONYMOUS_USER_ID, ilContext\CONTEXT_SOAP, ilContext\CONTEXT_WAC, ilPublicSectionSettings\getInstance(), ilLoggerFactory\getLogger(), ilContext\getType(), and ROOT_FOLDER_ID.

1427  : void
1428  {
1429  global $DIC;
1430 
1431  ilLoggerFactory::getLogger('init')->debug('Handling of failed authentication.');
1432 
1433  // #10608
1434  if (
1437  throw new Exception("Authentication failed.");
1438  }
1439 
1440  if (($DIC->http()->request()->getQueryParams()['cmdMode'] ?? 0) === 'asynch') {
1441  $DIC->language()->loadLanguageModule('init');
1442  $DIC->http()->saveResponse(
1443  $DIC->http()->response()
1444  ->withStatus(403)
1445  ->withBody(Streams::ofString($DIC->language()->txt('init_error_authentication_fail')))
1446  );
1447  $DIC->http()->sendResponse();
1448  $DIC->http()->close();
1449  }
1450  if (
1451  $DIC['ilAuthSession']->isExpired() &&
1452  !\ilObjUser::_isAnonymous($DIC['ilAuthSession']->getUserId())
1453  ) {
1454  ilLoggerFactory::getLogger('init')->debug('Expired session found -> redirect to login page');
1455  self::goToLogin();
1456  return;
1457  }
1458  if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME']) &&
1459  $DIC->access()->checkAccessOfUser(ANONYMOUS_USER_ID, 'read', '', ROOT_FOLDER_ID)) {
1460  ilLoggerFactory::getLogger('init')->debug('Redirect to public section.');
1461  self::goToPublicSection();
1462  return;
1463  }
1464  ilLoggerFactory::getLogger('init')->debug('Redirect to login page.');
1465  self::goToLogin();
1466  }
const CONTEXT_WAC
const ANONYMOUS_USER_ID
Definition: constants.php:27
static getLogger(string $a_component_id)
Get component logger.
const ROOT_FOLDER_ID
Definition: constants.php:32
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
global $DIC
Definition: shib_login.php:22
static _isAnonymous(int $usr_id)
static getType()
Get context type.
const CONTEXT_SOAP
+ Here is the call graph for this function:

◆ handleDevMode()

static ilInitialisation::handleDevMode ( )
staticprotected

Prepare developer tools.

Definition at line 1117 of file class.ilInitialisation.php.

1117  : void
1118  {
1119  error_reporting(-1);
1120  }

◆ handleErrorReporting()

static ilInitialisation::handleErrorReporting ( )
static

Set error reporting level.

Definition at line 1213 of file class.ilInitialisation.php.

Referenced by ilWebAccessCheckerDelivery\handleRequest().

1213  : void
1214  {
1215  // push the error level as high as possible / sane
1216  error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
1217 
1218  // see handleDevMode() - error reporting might be overwritten again
1219  // but we need the client ini first
1220  }
+ Here is the caller graph for this function:

◆ handleMaintenanceMode()

static ilInitialisation::handleMaintenanceMode ( )
staticprotected

handle maintenance mode

Definition at line 575 of file class.ilInitialisation.php.

References ilContext\hasHTML().

575  : void
576  {
577  global $ilClientIniFile;
578 
579  if (!$ilClientIniFile->readVariable("client", "access")) {
580  $mess = array(
581  "en" => "The server is not available due to maintenance." .
582  " We apologise for any inconvenience.",
583  "de" => "Der Server ist aufgrund von Wartungsarbeiten aktuell nicht verfügbar." .
584  " Wir bitten um Verständnis. Versuchen Sie es später noch einmal."
585  );
586  $mess_id = "init_error_maintenance";
587 
588  if (ilContext::hasHTML() && is_file("./maintenance.html")) {
589  self::redirect("./maintenance.html", $mess_id, $mess);
590  } else {
591  $mess = self::translateMessage($mess_id, $mess);
592  self::abortAndDie($mess);
593  }
594  }
595  }
static hasHTML()
Has HTML output.
+ Here is the call graph for this function:

◆ initAccessHandling()

static ilInitialisation::initAccessHandling ( )
staticprotected

$ilAccess and $rbac...

initialisation

Definition at line 1039 of file class.ilInitialisation.php.

References ilRbacSystem\getInstance(), and null.

1039  : void
1040  {
1041  self::initGlobal(
1042  "rbacreview",
1043  "ilRbacReview",
1044  "./components/ILIAS/AccessControl/classes/class.ilRbacReview.php",
1045  true
1046  );
1047 
1048  $rbacsystem = ilRbacSystem::getInstance();
1049  self::initGlobal('rbacsystem', $rbacsystem, null, true);
1050 
1051  self::initGlobal(
1052  "rbacadmin",
1053  "ilRbacAdmin",
1054  "./components/ILIAS/AccessControl/classes/class.ilRbacAdmin.php",
1055  true
1056  );
1057 
1058  self::initGlobal(
1059  "ilAccess",
1060  "ilAccess",
1061  "./components/ILIAS/AccessControl/classes/class.ilAccess.php",
1062  true
1063  );
1064  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ initAccessibilityControlConcept()

static ilInitialisation::initAccessibilityControlConcept ( \ILIAS\DI\Container  $c)
staticprotected

Definition at line 767 of file class.ilInitialisation.php.

References $c, and ActiveRecord\orderBy().

767  : void
768  {
769  $c['acc.criteria.type.factory'] = function (\ILIAS\DI\Container $c) {
770  return new ilAccessibilityCriterionTypeFactory($c->rbac()->review(), $c['ilObjDataCache']);
771  };
772 
773  $c['acc.document.evaluator'] = function (\ILIAS\DI\Container $c) {
776  $c['acc.criteria.type.factory'],
777  $c->user(),
778  $c->logger()->acc()
779  ),
780  $c->user(),
781  $c->logger()->acc(),
782  \ilAccessibilityDocument::orderBy('sorting')->get()
783  );
784  };
785  }
static orderBy(string $orderBy, string $orderDirection='ASC')
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$c
Definition: deliver.php:25
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:

◆ initAvatar()

static ilInitialisation::initAvatar ( \ILIAS\DI\Container  $c)
staticprotected

Definition at line 755 of file class.ilInitialisation.php.

References $c.

755  : void
756  {
757  $c["user.avatar.factory"] = function ($c) {
758  return new \ilUserAvatarFactory($c);
759  };
760  }
$c
Definition: deliver.php:25

◆ initBackgroundTasks()

static ilInitialisation::initBackgroundTasks ( \ILIAS\DI\Container  $c)
staticprivate

Definition at line 1881 of file class.ilInitialisation.php.

References $c, and $ilIliasIniFile.

1881  : void
1882  {
1883  global $ilIliasIniFile;
1884 
1885  $n_of_tasks = $ilIliasIniFile->readVariable("background_tasks", "number_of_concurrent_tasks");
1886  $sync = $ilIliasIniFile->readVariable("background_tasks", "concurrency");
1887 
1888  $n_of_tasks = $n_of_tasks ?: 5;
1889  $sync = $sync ?: 'sync'; // The default value is sync.
1890 
1891  $c["bt.task_factory"] = function ($c) {
1892  return new \ILIAS\BackgroundTasks\Implementation\Tasks\BasicTaskFactory($c["di.injector"]);
1893  };
1894 
1895  $c["bt.persistence"] = function ($c) {
1896  return \ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::instance($c->database());
1897  };
1898 
1899  $c["bt.injector"] = function ($c) {
1900  return new \ILIAS\BackgroundTasks\Dependencies\Injector($c, new BaseDependencyMap());
1901  };
1902 
1903  $c["bt.task_manager"] = function ($c) use ($sync) {
1904  if ($sync == 'sync') {
1905  return new \ILIAS\BackgroundTasks\Implementation\TaskManager\SyncTaskManager($c["bt.persistence"]);
1906  } elseif ($sync == 'async') {
1907  return new \ILIAS\BackgroundTasks\Implementation\TaskManager\AsyncTaskManager($c["bt.persistence"]);
1908  } else {
1909  throw new ilException("The supported Background Task Managers are sync and async. $sync given.");
1910  }
1911  };
1912  }
$c
Definition: deliver.php:25
$ilIliasIniFile
Definition: server.php:35

◆ initClient()

static ilInitialisation::initClient ( )
staticprotected

Init client-based objects (level 1)

Definition at line 1256 of file class.ilInitialisation.php.

References $DIC, $GLOBALS, CLIENT_ID, init(), ROOT_FOLDER_ID, and ilContext\usesHTTP().

1256  : void
1257  {
1258  global $https, $ilias, $DIC;
1259 
1260  self::setCookieConstants();
1261 
1262  self::determineClient();
1263 
1264  self::bootstrapFilesystems();
1265 
1266  self::initResourceStorage();
1267 
1268  self::initClientIniFile();
1269 
1270  // --- needs client ini
1271 
1272  $ilias->client_id = (string) CLIENT_ID;
1273 
1274  if (DEVMODE) {
1275  self::handleDevMode();
1276  }
1277 
1278  self::handleMaintenanceMode();
1279 
1280  self::initDatabase();
1281 
1282  self::initGlobalCache();
1283 
1284  self::initComponentService($DIC);
1285 
1286  // init dafault language
1287  self::initLanguage(false);
1288 
1289  // moved after databases
1290  self::initLog();
1291 
1292  self::initGlobal(
1293  "ilAppEventHandler",
1294  "ilAppEventHandler",
1295  "./components/ILIAS/EventHandling/classes/class.ilAppEventHandler.php"
1296  );
1297 
1298  // there are rare cases where initILIAS is called twice for a request
1299  // example goto.php is called and includes ilias.php later
1300  // we must prevent that ilPluginAdmin is initialized twice in
1301  // this case, since this won't get the values out of plugin.php the
1302  // second time properly
1303  if (!isset($DIC["ilPluginAdmin"]) || !$DIC["ilPluginAdmin"] instanceof ilPluginAdmin) {
1304  self::initGlobal(
1305  "ilPluginAdmin",
1306  new ilPluginAdmin($DIC["component.repository"]),
1307  "./components/ILIAS/Component/classes/class.ilPluginAdmin.php"
1308  );
1309  }
1310  self::initGlobal("https", "ilHTTPS", "./components/ILIAS/Http/classes/class.ilHTTPS.php");
1311  self::initSettings();
1312  self::setSessionHandler();
1313  self::initCron($GLOBALS['DIC']);
1314  self::initAvatar($GLOBALS['DIC']);
1315  self::initCustomObjectIcons($GLOBALS['DIC']);
1316  self::initLegalDocuments($GLOBALS['DIC']);
1317  self::initAccessibilityControlConcept($GLOBALS['DIC']);
1318  self::initLearningObjectMetadata($GLOBALS['DIC']);
1319 
1320  // --- needs settings
1321 
1322  self::initLocale();
1323 
1324  if (ilContext::usesHTTP()) {
1325  $https->enableSecureCookies();
1326  $https->checkProtocolAndRedirectIfNeeded();
1327  }
1328 
1329  // --- object handling
1330 
1331  self::initGlobal(
1332  "ilObjDataCache",
1333  "ilObjectDataCache",
1334  "./components/ILIAS/Object/classes/class.ilObjectDataCache.php"
1335  );
1336 
1337  self::initGlobal(
1338  "objDefinition",
1339  "ilObjectDefinition",
1340  "./components/ILIAS/Object/classes/class.ilObjectDefinition.php"
1341  );
1342 
1343  // $tree
1344  $tree = new ilTree(ROOT_FOLDER_ID);
1345  self::initGlobal("tree", $tree);
1346  unset($tree);
1347 
1348  self::setSessionCookieParams();
1349  self::setClientIdCookie();
1350 
1351  (new InitCtrlService())->init($DIC);
1352 
1353  // Init GlobalScreen
1354  self::initGlobalScreen($DIC);
1355  }
Class InitCtrlService wraps the initialization of ilCtrl.
static usesHTTP()
Uses HTTP aka browser.
const ROOT_FOLDER_ID
Definition: constants.php:32
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$GLOBALS["DIC"]
Definition: wac.php:53
const CLIENT_ID
Definition: constants.php:41
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

◆ initClientIniFile()

static ilInitialisation::initClientIniFile ( )
staticprotected

This method provides a global instance of class ilIniFile for the client.ini.php file in variable $ilClientIniFile.

It initializes a lot of constants accordingly to the settings in the client.ini.php file. Preconditions: ILIAS_WEB_DIR and CLIENT_ID must be set.

Returns
void true, if no error occured with client init file otherwise false

Definition at line 493 of file class.ilInitialisation.php.

References $ilIliasIniFile, CLIENT_ID, CLIENT_WEB_DIR, ILIAS_DATA_DIR, ILIAS_WEB_DIR, and ilDBConstants\TYPE_INNODB.

493  : void
494  {
495  global $ilIliasIniFile;
496 
497  // check whether ILIAS_WEB_DIR is set.
498  if (!defined('ILIAS_WEB_DIR') || empty(ILIAS_WEB_DIR)) {
499  self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile called without ILIAS_WEB_DIR.");
500  }
501 
502  // check whether CLIENT_ID is set.
503  if (CLIENT_ID == "") {
504  self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile called without CLIENT_ID.");
505  }
506 
507  $ini_file = "/client.ini.php";
508  if (defined('CLIENT_WEB_DIR')) {
509  $ini_file = CLIENT_WEB_DIR . $ini_file;
510  } else {
511  $ini_file = ILIAS_WEB_DIR . "/" . CLIENT_ID . "/client.ini.php";
512  }
513 
514  // get settings from ini file
515  $ilClientIniFile = new ilIniFile(__DIR__ . "/../../../../public/" . $ini_file);
516  $ilClientIniFile->read();
517 
518  // invalid client id / client ini
519  if ($ilClientIniFile->ERROR != "") {
520  $default_client = $ilIliasIniFile->readVariable("clients", "default");
521  if (CLIENT_ID !== "") {
522  $mess = array("en" => "Client does not exist.",
523  "de" => "Mandant ist ungültig."
524  );
525  self::redirect("index.php?client_id=" . $default_client, '', $mess);
526  } else {
527  self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile initializing client ini file abborted with: " . $ilClientIniFile->ERROR);
528  }
529  }
530 
531  self::initGlobal("ilClientIniFile", $ilClientIniFile);
532  // set constants
533  define("DEVMODE", (int) $ilClientIniFile->readVariable("system", "DEVMODE"));
534  define("SHOWNOTICES", (int) $ilClientIniFile->readVariable("system", "SHOWNOTICES"));
535  if (!defined("ROOT_FOLDER_ID")) {
536  define("ROOT_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'ROOT_FOLDER_ID'));
537  }
538  if (!defined("SYSTEM_FOLDER_ID")) {
539  define("SYSTEM_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'SYSTEM_FOLDER_ID'));
540  }
541  if (!defined("ROLE_FOLDER_ID")) {
542  define("ROLE_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'ROLE_FOLDER_ID'));
543  }
544  define("MAIL_SETTINGS_ID", (int) $ilClientIniFile->readVariable('system', 'MAIL_SETTINGS_ID'));
545  $error_handler = $ilClientIniFile->readVariable('system', 'ERROR_HANDLER');
546  define("ERROR_HANDLER", $error_handler ?: "PRETTY_PAGE");
547 
548  // this is for the online help installation, which sets OH_REF_ID to the
549  // ref id of the online module
550  define("OH_REF_ID", (int) $ilClientIniFile->readVariable("system", "OH_REF_ID"));
551 
552  // see ilObject::TITLE_LENGTH, ilObject::DESC_LENGTH
553  // define ("MAXLENGTH_OBJ_TITLE",125);#$ilClientIniFile->readVariable('system','MAXLENGTH_OBJ_TITLE'));
554  // define ("MAXLENGTH_OBJ_DESC",$ilClientIniFile->readVariable('system','MAXLENGTH_OBJ_DESC'));
555 
556  if (!defined("CLIENT_DATA_DIR")) {
557  define("CLIENT_DATA_DIR", ILIAS_DATA_DIR . "/" . CLIENT_ID);
558  }
559  if (!defined("CLIENT_WEB_DIR")) {
560  define("CLIENT_WEB_DIR", ILIAS_ABSOLUTE_PATH . "/public/" . ILIAS_WEB_DIR . "/" . CLIENT_ID);
561  }
562  define("CLIENT_NAME", $ilClientIniFile->readVariable('client', 'name')); // Change SS
563 
564  $db_type = $ilClientIniFile->readVariable("db", "type");
565  if ($db_type === "") {
566  define("IL_DB_TYPE", ilDBConstants::TYPE_INNODB);
567  } else {
568  define("IL_DB_TYPE", $db_type);
569  }
570  }
$ilIliasIniFile
Definition: server.php:35
const CLIENT_ID
Definition: constants.php:41
const CLIENT_WEB_DIR
Definition: constants.php:47
const ILIAS_DATA_DIR
Definition: constants.php:44
const ILIAS_WEB_DIR
Definition: constants.php:45

◆ initComponentService()

static ilInitialisation::initComponentService ( \ILIAS\DI\Container  $container)
staticprotected

Definition at line 1541 of file class.ilInitialisation.php.

1541  : void
1542  {
1543  $init = new InitComponentService();
1544  $init->init($container);
1545  }
$container
Definition: wac.php:36
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ initCore()

static ilInitialisation::initCore ( )
staticprotected

Init core objects (level 0)

Definition at line 1225 of file class.ilInitialisation.php.

References $GLOBALS, $ilErr, and ILIAS_VERSION_NUMERIC.

1225  : void
1226  {
1227  global $ilErr;
1228 
1229  self::handleErrorReporting();
1230 
1231  // breaks CAS: must be included after CAS context isset in AuthUtils
1232 
1233  self::requireCommonIncludes();
1234  $GLOBALS["DIC"]["ilias.version"] = $GLOBALS["DIC"][\ILIAS\Data\Factory::class]->version(ILIAS_VERSION_NUMERIC);
1235 
1236  // error handler
1237  self::initGlobal(
1238  "ilErr",
1239  "ilErrorHandling",
1240  "./components/ILIAS/Init/classes/class.ilErrorHandling.php"
1241  );
1242 
1243  self::removeUnsafeCharacters();
1244 
1245  self::initIliasIniFile();
1246 
1247  define('IL_INITIAL_WD', getcwd());
1248 
1249  // deprecated
1250  self::initGlobal("ilias", "ILIAS", "./components/ILIAS/Init/classes/class.ilias.php");
1251  }
$ilErr
Definition: raiseError.php:33
const ILIAS_VERSION_NUMERIC
$GLOBALS["DIC"]
Definition: wac.php:53

◆ initCron()

static ilInitialisation::initCron ( \ILIAS\DI\Container  $c)
staticprotected

Definition at line 718 of file class.ilInitialisation.php.

References $c.

718  : void
719  {
720  $c['cron.repository'] = static function (\ILIAS\DI\Container $c): ILIAS\Cron\Job\JobRepository {
722  $c->database(),
723  $c->settings(),
724  $c->logger()->cron(),
725  $c['component.repository'],
726  $c['component.factory']
727  );
728  };
729 
730  $c['cron.manager'] = static function (\ILIAS\DI\Container $c): ILIAS\Cron\Job\JobManager {
732  $c['cron.repository'],
733  $c->database(),
734  $c->settings(),
735  $c->logger()->cron(),
736  $c[\ILIAS\Data\Factory::class]->clock(),
737  );
738  };
739  }
Interface Observer Contains several chained tasks and infos about them.
$c
Definition: deliver.php:25
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35

◆ initCustomObjectIcons()

static ilInitialisation::initCustomObjectIcons ( \ILIAS\DI\Container  $c)
staticprotected
Parameters
\ILIAS\DI\Container$c

Definition at line 744 of file class.ilInitialisation.php.

References $c.

744  : void
745  {
746  $c["object.customicons.factory"] = function ($c) {
747  return new ilObjectCustomIconFactory(
748  $c->filesystem()->web(),
749  $c->upload(),
750  $c['ilObjDataCache']
751  );
752  };
753  }
$c
Definition: deliver.php:25

◆ initDatabase()

static ilInitialisation::initDatabase ( )
staticprotected

initialise database object $ilDB

Definition at line 600 of file class.ilInitialisation.php.

References $ilDB, and ilDBWrapperFactory\getWrapper().

600  : void
601  {
602  // build dsn of database connection and connect
604  $ilDB->initFromIniFile();
605  $ilDB->connect();
606 
607  self::initGlobal("ilDB", $ilDB);
608  }
static getWrapper(string $a_type)
+ Here is the call graph for this function:

◆ initFileUploadService()

static ilInitialisation::initFileUploadService ( \ILIAS\DI\Container  $dic)
static

Initializes the file upload service.

This service requires the http and filesystem service.

Parameters
\ILIAS\DI\Container$dicThe dependency container which should be used to load the file upload service.
Returns
void

Definition at line 310 of file class.ilInitialisation.php.

References $c, and ilVirusScannerFactory\_getInstance().

310  : void
311  {
312  $dic['upload.processor-manager'] = function ($c) {
313  return new PreProcessorManagerImpl();
314  };
315 
316  $dic['upload'] = function (\ILIAS\DI\Container $c) {
317  $fileUploadImpl = new \ILIAS\FileUpload\FileUploadImpl(
318  $c['upload.processor-manager'],
319  $c['filesystem'],
320  $c['http']
321  );
322  if ((defined('IL_VIRUS_SCANNER') && IL_VIRUS_SCANNER != "None") || (defined('IL_SCANNER_TYPE') && IL_SCANNER_TYPE == "1")) {
323  $fileUploadImpl->register(new ilVirusScannerPreProcessor(ilVirusScannerFactory::_getInstance()));
324  }
325 
326  $fileUploadImpl->register(new FilenameSanitizerPreProcessor());
327  $fileUploadImpl->register(
329  $c->fileServiceSettings(),
330  $c->language()->txt("msg_info_blacklisted")
331  )
332  );
333  $fileUploadImpl->register(new InsecureFilenameSanitizerPreProcessor());
334  $fileUploadImpl->register(new SVGBlacklistPreProcessor(
335  $c->language()->txt("upload_svg_rejection_message"),
336  $c->language()->txt("upload_svg_rejection_message_script"),
337  $c->language()->txt("upload_svg_rejection_message_base64"),
338  $c->language()->txt("upload_svg_rejection_message_elements")
339  ));
340 
341  return $fileUploadImpl;
342  };
343  }
$c
Definition: deliver.php:25
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
$dic
Definition: result.php:31
+ Here is the call graph for this function:

◆ initGlobal()

static ilInitialisation::initGlobal ( string  $a_name,
  $a_class,
?string  $a_source_file = null,
?bool  $destroy_existing = false 
)
staticprotected
Parameters
object | string$a_class

Definition at line 1081 of file class.ilInitialisation.php.

References $c, $DIC, and $GLOBALS.

1086  : void {
1087  global $DIC;
1088 
1089  if ($destroy_existing) {
1090  if (isset($GLOBALS[$a_name])) {
1091  unset($GLOBALS[$a_name]);
1092  }
1093  if (isset($DIC[$a_name])) {
1094  unset($DIC[$a_name]);
1095  }
1096  }
1097 
1098  $GLOBALS[$a_name] = is_object($a_class) ? $a_class : new $a_class();
1099 
1100  $DIC[$a_name] = static function (Container $c) use ($a_name) {
1101  return $GLOBALS[$a_name];
1102  };
1103  }
$c
Definition: deliver.php:25
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
$GLOBALS["DIC"]
Definition: wac.php:53
global $DIC
Definition: shib_login.php:22

◆ initGlobalCache()

static ilInitialisation::initGlobalCache ( )
staticprotected

Definition at line 610 of file class.ilInitialisation.php.

References $DIC.

610  : void
611  {
612  global $DIC;
613  $legacy_settings = new ilGlobalCacheSettingsAdapter(
614  $DIC->clientIni(),
615  $DIC->database(),
616  );
617  $DIC['global_cache'] = new \ILIAS\Cache\Services(
618  $legacy_settings->getConfig()
619  );
620  }
global $DIC
Definition: shib_login.php:22

◆ initGlobalScreen()

static ilInitialisation::initGlobalScreen ( \ILIAS\DI\Container  $c)
staticprivate
Parameters
\ILIAS\DI\Container$c

Definition at line 1482 of file class.ilInitialisation.php.

References ILIAS_VERSION_NUMERIC.

1482  : void
1483  {
1484  $c['global_screen'] = function () use ($c) {
1485  return new Services(
1486  new ilGSProviderFactory($c),
1487  $c->ui(),
1488  htmlentities(str_replace([" ", ".", "-"], "_", ILIAS_VERSION_NUMERIC))
1489  );
1490  };
1491  $c->globalScreen()->tool()->context()->stack()->clear();
1492  $c->globalScreen()->tool()->context()->claim()->main();
1493  }
$c
Definition: deliver.php:25
const ILIAS_VERSION_NUMERIC

◆ initHTML()

static ilInitialisation::initHTML ( )
staticprotected

init HTML output (level 3)

Definition at line 1550 of file class.ilInitialisation.php.

References $_GET, $DIC, $GLOBALS, ilContext\hasUser(), and ILIAS\Repository\int().

1550  : void
1551  {
1552  global $ilUser, $DIC;
1553 
1554  if (ilContext::hasUser()) {
1555  // load style definitions
1556  // use the init function with plugin hook here, too
1557  self::initStyle();
1558 
1559  self::initUploadPolicies($DIC);
1560  }
1561 
1562  self::applyPluginManipulationsToUiFramework($GLOBALS["DIC"]);
1563  $tpl = new ilGlobalPageTemplate($DIC->globalScreen(), $DIC->ui(), $DIC->http());
1564  self::initGlobal("tpl", $tpl);
1565 
1566  if (ilContext::hasUser()) {
1567  $dispatcher = new \ILIAS\Init\StartupSequence\StartUpSequenceDispatcher($DIC);
1568  $dispatcher->dispatch();
1569  }
1570 
1571  self::initGlobal(
1572  "ilNavigationHistory",
1573  "ilNavigationHistory",
1574  "components/ILIAS/Navigation/classes/class.ilNavigationHistory.php"
1575  );
1576 
1577  self::initGlobal(
1578  "ilHelp",
1579  "ilHelpGUI",
1580  "components/ILIAS/Help/classes/class.ilHelpGUI.php"
1581  );
1582 
1583  if (DEVMODE) {
1584  $DIC["help.text_retriever"] = new ILIAS\UI\Help\TextRetriever\Echoing();
1585  } else {
1586  $DIC["help.text_retriever"] = new ilHelpUITextRetriever();
1587  }
1588 
1589  self::initGlobal(
1590  "ilToolbar",
1591  "ilToolbarGUI",
1592  "./components/ILIAS/UIComponent/Toolbar/classes/class.ilToolbarGUI.php"
1593  );
1594 
1595  self::initGlobal(
1596  "ilLocator",
1597  "ilLocatorGUI",
1598  "./components/ILIAS/Locator/classes/class.ilLocatorGUI.php"
1599  );
1600 
1601  self::initGlobal(
1602  "ilTabs",
1603  "ilTabsGUI",
1604  "./components/ILIAS/UIComponent/Tabs/classes/class.ilTabsGUI.php"
1605  );
1606 
1607  if (ilContext::hasUser()) {
1608  // the next line makes it impossible to save the offset somehow in a session for
1609  // a specific table (I tried it for the user administration).
1610  // its not posssible to distinguish whether it has been set to page 1 (=offset = 0)
1611  // or not set at all (then we want the last offset, e.g. being used from a session var).
1612  // So I added the wrapping if statement. Seems to work (hopefully).
1613  // Alex April 14th 2006
1614  // @todo not replaced by refinery due to unknown sideeffects
1615  if (isset($_GET['offset']) && $_GET['offset'] != "") {
1616  $_GET['offset'] = (int) $_GET['offset']; // old code
1617  }
1618 
1619  self::initGlobal("lti", "ilLTIViewGUI", "./components/ILIAS/LTIProvider/classes/class.ilLTIViewGUI.php");
1620  $GLOBALS["DIC"]["lti"]->init();
1621  self::initKioskMode($GLOBALS["DIC"]);
1622  }
1623  }
$_GET["client_id"]
Definition: webdav.php:30
static hasUser()
Based on user authentication?
This describes a facility that the UI framework can use to retrieve some help text.
$GLOBALS["DIC"]
Definition: wac.php:53
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

◆ initHTTPServices()

static ilInitialisation::initHTTPServices ( \ILIAS\DI\Container  $container)
staticprotected
Parameters
\ILIAS\DI\Container$container

Definition at line 1471 of file class.ilInitialisation.php.

References ILIAS\StaticURL\Init\init().

1471  : void
1472  {
1473  $init_http = new InitHttpServices();
1474  $init_http->init($container);
1475 
1477  }
static init(Container $c)
Definition: Init.php:36
$container
Definition: wac.php:36
Responsible for loading the HTTP Service into the dependency injection container of ILIAS...
+ Here is the call graph for this function:

◆ initILIAS()

static ilInitialisation::initILIAS ( )
static

ilias initialisation

Definition at line 1145 of file class.ilInitialisation.php.

References $c, $GLOBALS, ilLoggerFactory\getInstance(), ilContext\hasHTML(), ilContext\hasUser(), init(), ilContext\initClient(), and ilContext\supportsPersistentSessions().

Referenced by ilSoapFunctions\__call(), ILIAS\Cron\CLI\StartUp\__construct(), GuzzleHttp\Client\ModeToggle\__construct(), GuzzleHttp\Client\ItemState\__construct(), ILIAS\Init\AllModernComponents\enter(), ilSoapAdministration\getClientInfoXML(), ilSoapAdministration\getInstallationInfoXML(), ilSoapSCORMAdministration\getSCORMCompletionStatus(), ILIAS\UI\examples\Layout\Page\Standard\getUIContent(), ilNusoapUserAdministrationAdapter\handleSoapPlugins(), XapiProxy\DataService\initIlias(), ilCalendarRemoteAccessHandler\initIlias(), ilWebAccessChecker\initILIAS(), and ILIAS\UI\examples\MainControls\Footer\maybeRenderFooterInFullScreenMode().

1145  : void
1146  {
1147  if (self::$already_initialized) {
1148  return;
1149  }
1150 
1151  $GLOBALS["DIC"]["ilLoggerFactory"] = function ($c) {
1153  };
1154 
1155  self::$already_initialized = true;
1156 
1157  self::initCore();
1158  self::initHTTPServices($GLOBALS["DIC"]);
1159  if (ilContext::initClient()) {
1160  self::initFileUploadService($GLOBALS["DIC"]);
1161  Init::init($GLOBALS["DIC"]);
1162  self::initClient();
1163  self::initSession();
1164 
1165  if (ilContext::hasUser()) {
1166  self::initUser();
1167 
1169  self::resumeUserSession();
1170  }
1171  }
1172 
1173  // language may depend on user setting
1174  self::initLanguage(true);
1175  $GLOBALS['DIC']['tree']->initLangCode();
1176 
1177  self::initInjector($GLOBALS['DIC']);
1178  self::initBackgroundTasks($GLOBALS['DIC']);
1179  self::initKioskMode($GLOBALS['DIC']);
1180 
1181  if (ilContext::hasHTML()) {
1182  self::initHTML();
1183  }
1184  }
1185 
1186  // this MUST happen after everything else is initialized,
1187  // because this leads to rather unexpected behaviour which
1188  // is super hard to track down to this.
1189  self::replaceSuperGlobals($GLOBALS['DIC']);
1190  }
static hasUser()
Based on user authentication?
$c
Definition: deliver.php:25
$GLOBALS["DIC"]
Definition: wac.php:53
static hasHTML()
Has HTML output.
static supportsPersistentSessions()
Check if context supports persistent session handling.
static initClient()
Init client.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initIliasIniFile()

static ilInitialisation::initIliasIniFile ( )
staticprotected

This method provides a global instance of class ilIniFile for the ilias.ini.php file in variable $ilIliasIniFile.

It initializes a lot of constants accordingly to the settings in the ilias.ini.php file.

Definition at line 104 of file class.ilInitialisation.php.

References $ilIliasIniFile, and ilTimeZone\initDefaultTimeZone().

104  : void
105  {
106  $ilIliasIniFile = new ilIniFile(__DIR__ . "/../../../../ilias.ini.php");
107  $ilIliasIniFile->read();
108  self::initGlobal('ilIliasIniFile', $ilIliasIniFile);
109 
110  // initialize constants
111  // aka internal data directory
112  if (!defined('ILIAS_DATA_DIR')) {
113  define("ILIAS_DATA_DIR", $ilIliasIniFile->readVariable("clients", "datadir"));
114  }
115  // aka Public Web Directory in Web, relative path to the webroot (public).
116  if (!defined('ILIAS_WEB_DIR')) {
117  $from_ilias_ini = $ilIliasIniFile->readVariable("clients", "path");
118  $from_ilias_ini = str_replace('public/', '', $from_ilias_ini);
119  define("ILIAS_WEB_DIR", $from_ilias_ini);
120  }
121  if (!defined("ILIAS_ABSOLUTE_PATH")) {
122  define("ILIAS_ABSOLUTE_PATH", $ilIliasIniFile->readVariable('server', 'absolute_path'));
123  }
124 
125  // logging
126  define("ILIAS_LOG_DIR", $ilIliasIniFile->readVariable("log", "path"));
127  define("ILIAS_LOG_FILE", $ilIliasIniFile->readVariable("log", "file"));
128  if (!defined("ILIAS_LOG_ENABLED")) {
129  define("ILIAS_LOG_ENABLED", $ilIliasIniFile->readVariable("log", "enabled"));
130  }
131  define("ILIAS_LOG_LEVEL", $ilIliasIniFile->readVariable("log", "level"));
132 
133  // read path + command for third party tools from ilias.ini
134  define("PATH_TO_CONVERT", $ilIliasIniFile->readVariable("tools", "convert"));
135  define("PATH_TO_FFMPEG", $ilIliasIniFile->readVariable("tools", "ffmpeg"));
136  define("PATH_TO_ZIP", $ilIliasIniFile->readVariable("tools", "zip"));
137  define("PATH_TO_MKISOFS", $ilIliasIniFile->readVariable("tools", "mkisofs"));
138  define("PATH_TO_UNZIP", $ilIliasIniFile->readVariable("tools", "unzip"));
139  define("PATH_TO_GHOSTSCRIPT", $ilIliasIniFile->readVariable("tools", "ghostscript"));
140  define("PATH_TO_JAVA", $ilIliasIniFile->readVariable("tools", "java"));
141  define("URL_TO_LATEX", $ilIliasIniFile->readVariable("tools", "latex"));
142  define("PATH_TO_FOP", $ilIliasIniFile->readVariable("tools", "fop"));
143  define("PATH_TO_SCSS", $ilIliasIniFile->readVariable("tools", "scss"));
144  define("PATH_TO_PHANTOMJS", $ilIliasIniFile->readVariable("tools", "phantomjs"));
145 
146  if ($ilIliasIniFile->groupExists('error')) {
147  if ($ilIliasIniFile->variableExists('error', 'editor_url')) {
148  define("ERROR_EDITOR_URL", $ilIliasIniFile->readVariable('error', 'editor_url'));
149  }
150 
151  if ($ilIliasIniFile->variableExists('error', 'editor_path_translations')) {
152  define(
153  "ERROR_EDITOR_PATH_TRANSLATIONS",
154  $ilIliasIniFile->readVariable('error', 'editor_path_translations')
155  );
156  }
157  }
158 
159  // read virus scanner settings
160  switch ($ilIliasIniFile->readVariable("tools", "vscantype")) {
161  case "sophos":
162  define("IL_VIRUS_SCANNER", "Sophos");
163  define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
164  define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
165  break;
166 
167  case "antivir":
168  define("IL_VIRUS_SCANNER", "AntiVir");
169  define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
170  define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
171  break;
172 
173  case "clamav":
174  define("IL_VIRUS_SCANNER", "ClamAV");
175  define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
176  define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
177  break;
178  case "icap":
179  define("IL_VIRUS_SCANNER", "icap");
180  define("IL_ICAP_HOST", $ilIliasIniFile->readVariable("tools", "icap_host"));
181  define("IL_ICAP_PORT", $ilIliasIniFile->readVariable("tools", "icap_port"));
182  define("IL_ICAP_AV_COMMAND", $ilIliasIniFile->readVariable("tools", "icap_service_name"));
183  define("IL_ICAP_CLIENT", $ilIliasIniFile->readVariable("tools", "icap_client_path"));
184  break;
185 
186  default:
187  define("IL_VIRUS_SCANNER", "None");
188  define("IL_VIRUS_CLEAN_COMMAND", '');
189  break;
190  }
191 
193  define("IL_TIMEZONE", $tz);
194  }
static initDefaultTimeZone(ilIniFile $ini)
Initialize default timezone from system settings.
$ilIliasIniFile
Definition: server.php:35
+ Here is the call graph for this function:

◆ initInjector()

static ilInitialisation::initInjector ( \ILIAS\DI\Container  $c)
staticprivate

Definition at line 1914 of file class.ilInitialisation.php.

References $c.

1914  : void
1915  {
1916  $c["di.dependency_map"] = function ($c) {
1917  return new \ILIAS\BackgroundTasks\Dependencies\DependencyMap\BaseDependencyMap();
1918  };
1919 
1920  $c["di.injector"] = function ($c) {
1921  return new \ILIAS\BackgroundTasks\Dependencies\Injector($c, $c["di.dependency_map"]);
1922  };
1923  }
$c
Definition: deliver.php:25

◆ initKioskMode()

static ilInitialisation::initKioskMode ( \ILIAS\DI\Container  $c)
staticprivate

Definition at line 1925 of file class.ilInitialisation.php.

References $c.

1925  : void
1926  {
1927  $c["service.kiosk_mode"] = function ($c) {
1928  return new ilKioskModeService(
1929  $c['ilCtrl'],
1930  $c['lng'],
1931  $c['ilAccess'],
1932  $c['objDefinition']
1933  );
1934  };
1935  }
$c
Definition: deliver.php:25
Central entry point for users of the service.

◆ initLearningObjectMetadata()

static ilInitialisation::initLearningObjectMetadata ( \ILIAS\DI\Container  $c)
staticprivate

Definition at line 1937 of file class.ilInitialisation.php.

References $c.

1937  : void
1938  {
1939  $c['learning_object_metadata'] = function ($c) {
1940  return new \ILIAS\MetaData\Services\Services($c);
1941  };
1942  }
$c
Definition: deliver.php:25

◆ initLegalDocuments()

static ilInitialisation::initLegalDocuments ( Container  $c)
staticprotected

Definition at line 762 of file class.ilInitialisation.php.

762  : void
763  {
764  $c['legalDocuments'] = static fn(Container $c) => new Conductor($c);
765  }
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35

◆ initLocale()

static ilInitialisation::initLocale ( )
staticprotected

Init Locale.

Definition at line 885 of file class.ilInitialisation.php.

References $ilSetting.

885  : void
886  {
887  global $ilSetting;
888 
889  if ($ilSetting->get("locale") && trim($ilSetting->get("locale")) !== "") {
890  $larr = explode(",", trim($ilSetting->get("locale")));
891  $ls = array();
892  $first = $larr[0];
893  foreach ($larr as $l) {
894  if (trim($l) != "") {
895  $ls[] = $l;
896  }
897  }
898  if (count($ls) > 0) {
899  setlocale(LC_ALL, $ls);
900 
901  // #15347 - making sure that floats are not changed
902  setlocale(LC_NUMERIC, "C");
903  }
904  }
905  }
global $ilSetting
Definition: privfeed.php:31

◆ initLog()

static ilInitialisation::initLog ( )
staticprotected

Init log instance.

Definition at line 1069 of file class.ilInitialisation.php.

References $log, and ilLoggerFactory\getRootLogger().

1069  : void
1070  {
1072 
1073  self::initGlobal("ilLog", $log);
1074  // deprecated
1075  self::initGlobal("log", $log);
1076  }
$log
Definition: result.php:32
static getRootLogger()
The unique root logger has a fixed error level.
+ Here is the call graph for this function:

◆ initResourceStorage()

static ilInitialisation::initResourceStorage ( )
staticprotected

Definition at line 196 of file class.ilInitialisation.php.

References $c, $DIC, CLIENT_ID, ILIAS_DATA_DIR, ILIAS_WEB_DIR, and init().

196  : void
197  {
198  global $DIC;
199  (new InitResourceStorage())->init($DIC);
200  }
Responsible for loading the Resource Storage into the dependency injection container of ILIAS...
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

◆ initSession()

static ilInitialisation::initSession ( )
staticprotected

Init auth session.

Definition at line 1195 of file class.ilInitialisation.php.

References $c, $GLOBALS, and ilAuthSession\getInstance().

1195  : void
1196  {
1197  if (isset($GLOBALS['DIC']['ilAuthSession'])) {
1198  unset($GLOBALS['DIC']['ilAuthSession']);
1199  }
1200 
1201  $GLOBALS['DIC']['ilAuthSession'] = static function (Container $c): ilAuthSession {
1202  $auth_session = ilAuthSession::getInstance(
1203  $c['ilLoggerFactory']->getLogger('auth')
1204  );
1205  $auth_session->init();
1206  return $auth_session;
1207  };
1208  }
$c
Definition: deliver.php:25
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
$GLOBALS["DIC"]
Definition: wac.php:53
static getInstance(\ilLogger $logger)
Get instance.
+ Here is the call graph for this function:

◆ initSettings()

static ilInitialisation::initSettings ( )
staticprotected

initialise $ilSettings object and define constants Used in Soap

Definition at line 791 of file class.ilInitialisation.php.

References $ilSetting, and ilContext\usesHTTP().

791  : void
792  {
793  global $ilSetting;
794 
795  self::initGlobal(
796  "ilSetting",
797  "ilSetting",
798  "components/ILIAS/Administration/classes/class.ilSetting.php"
799  );
800 
801  // check correct setup
802  if (!$ilSetting->get("setup_ok")) {
803  self::abortAndDie("Setup is not completed. Please run setup routine again.");
804  }
805 
806  // set anonymous user & role id and system role id
807  define("ANONYMOUS_USER_ID", (int) $ilSetting->get("anonymous_user_id"));
808  define("ANONYMOUS_ROLE_ID", (int) $ilSetting->get("anonymous_role_id"));
809  define("SYSTEM_USER_ID", (int) $ilSetting->get("system_user_id"));
810  define("SYSTEM_ROLE_ID", (int) $ilSetting->get("system_role_id"));
811  define("USER_FOLDER_ID", 7);
812 
813  // recovery folder
814  define("RECOVERY_FOLDER_ID", (int) $ilSetting->get("recovery_folder_id"));
815 
816  // installation id
817  define("IL_INST_ID", $ilSetting->get("inst_id", '0'));
818 
819  // define default suffix replacements
820  define("SUFFIX_REPL_DEFAULT", "php,php3,php4,inc,lang,phtml,htaccess");
821  define("SUFFIX_REPL_ADDITIONAL", $ilSetting->get("suffix_repl_additional", ""));
822 
823  if (ilContext::usesHTTP()) {
824  self::buildHTTPPath();
825  }
826  }
static usesHTTP()
Uses HTTP aka browser.
global $ilSetting
Definition: privfeed.php:31
+ Here is the call graph for this function:

◆ initStyle()

static ilInitialisation::initStyle ( )
staticprotected

provide $styleDefinition object

Definition at line 831 of file class.ilInitialisation.php.

References $DIC.

831  : void
832  {
833  global $DIC;
834  $component_factory = $DIC["component.factory"];
835 
836  // load style definitions
837  self::initGlobal(
838  "styleDefinition",
839  "ilStyleDefinition",
840  "./components/ILIAS/Style/System/classes/class.ilStyleDefinition.php"
841  );
842 
843  // add user interface hook for style initialisation
844  foreach ($component_factory->getActivePluginsInSlot("uihk") as $ui_plugin) {
845  $gui_class = $ui_plugin->getUIClassInstance();
846  $gui_class->modifyGUI("components/ILIAS/Init", "init_style", array("styleDefinition" => $DIC->systemStyle()));
847  }
848  }
global $DIC
Definition: shib_login.php:22

◆ initUploadPolicies()

static ilInitialisation::initUploadPolicies ( \ILIAS\DI\Container  $dic)
staticprotected

Definition at line 345 of file class.ilInitialisation.php.

References $dic.

345  : void
346  {
347  $dic['upload_policy_repository'] = static function ($dic) {
348  return new UploadPolicyDBRepository($dic->database());
349  };
350 
351  $dic['upload_policy_resolver'] = static function ($dic): UploadPolicyResolver {
352  return new UploadPolicyResolver(
353  $dic->rbac()->review(),
354  $dic->user(),
355  $dic['upload_policy_repository']->getAll(),
356  );
357  };
358  }
$dic
Definition: result.php:31

◆ initUser()

static ilInitialisation::initUser ( )
staticprotected

Init user / authentification (level 2)

Definition at line 1360 of file class.ilInitialisation.php.

References ANONYMOUS_USER_ID.

1360  : void
1361  {
1362  global $ilias, $ilUser;
1363 
1364  // $ilUser
1365  self::initGlobal(
1366  "ilUser",
1368  "./components/ILIAS/User/classes/class.ilObjUser.php",
1369  true
1370  );
1371  $ilias->account = $ilUser;
1372 
1373  self::initAccessHandling();
1374  }
const ANONYMOUS_USER_ID
Definition: constants.php:27

◆ initUserAccount()

static ilInitialisation::initUserAccount ( )
static

Init user with current account id.

Definition at line 853 of file class.ilInitialisation.php.

References $DIC, $GLOBALS, ilLoggerFactory\getInstance(), and ilOnlineTracking\updateAccess().

Referenced by ilAuthFrontend\handleAuthenticationSuccess(), and ilCalendarRemoteAccessHandler\initUser().

853  : void
854  {
855  global $DIC;
856 
857  static $context_init;
858 
859  $uid = $GLOBALS['DIC']['ilAuthSession']->getUserId();
860  if ($uid) {
861  $DIC->user()->setId($uid);
862  $DIC->user()->read();
863  if (!isset($context_init)) {
864  if ($DIC->user()->isAnonymous()) {
865  $DIC->globalScreen()->tool()->context()->claim()->external();
866  } else {
867  $DIC->globalScreen()->tool()->context()->claim()->internal();
868  }
869  $context_init = true;
870  }
871  // init console log handler
872  ilLoggerFactory::getInstance()->initUser($DIC->user()->getLogin());
873  \ilOnlineTracking::updateAccess($DIC->user());
874  } else {
875  if (is_object($GLOBALS['ilLog'])) {
876  $GLOBALS['ilLog']->logStack();
877  }
878  self::abortAndDie("Init user account failed");
879  }
880  }
static updateAccess(ilObjUser $user)
$GLOBALS["DIC"]
Definition: wac.php:53
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ recursivelyRemoveUnsafeCharacters()

static ilInitialisation::recursivelyRemoveUnsafeCharacters (   $var)
staticprotected
Parameters
array | string$var
Returns
array|string

Definition at line 69 of file class.ilInitialisation.php.

70  {
71  if (is_array($var)) {
72  $mod = [];
73  foreach ($var as $k => $v) {
74  $k = self::recursivelyRemoveUnsafeCharacters($k);
75  $mod[$k] = self::recursivelyRemoveUnsafeCharacters($v);
76  }
77  return $mod;
78  }
79  return strip_tags(
80  str_replace(
81  array("\x00", "\n", "\r", "\\", "'", '"', "\x1a"),
82  "",
83  $var
84  )
85  );
86  }

◆ redirect()

static ilInitialisation::redirect ( string  $a_target,
string  $a_message_id = '',
?array  $a_message_static = null 
)
staticprotected

Redirects to target url if context supports it.

Definition at line 1793 of file class.ilInitialisation.php.

References $GLOBALS, $message, $param, ilUtil\appendUrlParameterString(), ilContext\hasHTML(), ILIAS\FileDelivery\http(), ilUtil\redirect(), ilUtil\stripSlashes(), ilContext\supportsRedirects(), and ilContext\usesHTTP().

1797  : void {
1798  // #12739
1799  if (defined("ILIAS_HTTP_PATH") &&
1800  !stristr($a_target, ILIAS_HTTP_PATH)) {
1801  $a_target = ILIAS_HTTP_PATH . "/" . $a_target;
1802  }
1803 
1804  foreach (['ext_uid', 'soap_pw'] as $param) {
1805  if (false === strpos(
1806  $a_target,
1807  $param . '='
1808  ) && isset($GLOBALS['DIC']->http()->request()->getQueryParams()[$param])) {
1809  $a_target = \ilUtil::appendUrlParameterString($a_target, $param . '=' . \ilUtil::stripSlashes(
1810  $GLOBALS['DIC']->http()->request()->getQueryParams()[$param]
1811  ));
1812  }
1813  }
1814 
1816  ilUtil::redirect($a_target);
1817  } else {
1818  $message = self::translateMessage($a_message_id, $a_message_static);
1819 
1820  // user-directed linked message
1822  $link = self::translateMessage(
1823  "init_error_redirect_click",
1824  array("en" => 'Please click to continue.',
1825  "de" => 'Bitte klicken um fortzufahren.'
1826  )
1827  );
1828  $mess = $message .
1829  '<br /><a href="' . $a_target . '">' . $link . '</a>';
1830  } // plain text
1831  else {
1832  // not much we can do here
1833  $mess = $message;
1834 
1835  if (!trim($mess)) {
1836  $mess = self::translateMessage(
1837  "init_error_redirect_info",
1838  array("en" => 'Redirect not supported by context.',
1839  "de" => 'Weiterleitungen werden durch Kontext nicht unterstützt.'
1840  )
1841  ) .
1842  ' (' . $a_target . ')';
1843  }
1844  }
1845 
1846  self::abortAndDie($mess);
1847  }
1848  }
static appendUrlParameterString(string $a_url, string $a_par, bool $xml_style=false)
static usesHTTP()
Uses HTTP aka browser.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static http()
Fetches the global http state from ILIAS.
$GLOBALS["DIC"]
Definition: wac.php:53
static hasHTML()
Has HTML output.
$param
Definition: xapitoken.php:46
static redirect(string $a_script)
$message
Definition: xapiexit.php:31
static supportsRedirects()
Are redirects supported?
+ Here is the call graph for this function:

◆ redirectToStartingPage()

static ilInitialisation::redirectToStartingPage ( string  $target = '')
static

Definition at line 1850 of file class.ilInitialisation.php.

References $DIC, ANONYMOUS_USER_ID, and ilLoggerFactory\getLogger().

Referenced by ILIAS\LegalDocuments\Conductor\__construct(), ilStartUpGUI\doApacheAuthentication(), ilStartUpGUI\doCasAuthentication(), ilStartUpGUI\doLTIAuthentication(), ilStartUpGUI\doMigration(), ilStartUpGUI\doMigrationNewAccount(), ilStartUpGUI\doOpenIdConnectAuthentication(), ilStartUpGUI\doSamlAuthentication(), ilStartUpGUI\doShibbolethAuthentication(), ilStartUpGUI\doStandardAuthentication(), ilStartUpGUI\processIndexPHP(), ILIAS\LegalDocuments\ConsumerToolbox\Blocks\routing(), ilStartUpGUI\showLoginPageOrStartupPage(), and ilAuthFrontendCredentialsSoap\tryAuthenticationOnLoginPage().

1850  : void
1851  {
1852  global $DIC;
1853 
1854  // fallback, should never happen
1855  if ($DIC->user()->getId() === ANONYMOUS_USER_ID) {
1856  self::goToPublicSection();
1857  return;
1858  }
1859 
1860  if (
1861  $target === '' &&
1862  $DIC->http()->wrapper()->query()->has('target')
1863  ) {
1864  $target = $DIC->http()->wrapper()->query()->retrieve(
1865  'target',
1866  $DIC->refinery()->kindlyTo()->string()
1867  );
1868  }
1869 
1870  // for password change and incomplete profile
1871  // see ilDashboardGUI
1872  if ($target === '') {
1873  ilLoggerFactory::getLogger('init')->debug('Redirect to default starting page');
1874  $DIC->ctrl()->redirectToURL(ilUserUtil::getStartingPointAsUrl());
1875  } else {
1876  ilLoggerFactory::getLogger('init')->debug('Redirect to target: ' . $target);
1877  $DIC->ctrl()->redirectToURL("goto.php?target=" . $target);
1878  }
1879  }
const ANONYMOUS_USER_ID
Definition: constants.php:27
static getLogger(string $a_component_id)
Get component logger.
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reinitILIAS()

static ilInitialisation::reinitILIAS ( )
static

Definition at line 1124 of file class.ilInitialisation.php.

Referenced by ilSoapAdministration\initIlias().

1124  : void
1125  {
1126  self::$already_initialized = false;
1127  self::initILIAS();
1128  }
+ Here is the caller graph for this function:

◆ reInitUser()

static ilInitialisation::reInitUser ( )
static

Definition at line 1130 of file class.ilInitialisation.php.

References ilContext\hasUser(), ilContext\initClient(), and ilContext\supportsPersistentSessions().

Referenced by ilWebAccessChecker\addAppliedCheckingMethod(), ilSoapAdministration\initAuth(), and ilSoapAdministration\reInitUser().

1130  : void
1131  {
1133  self::initSession();
1134  self::initUser();
1135 
1137  self::resumeUserSession();
1138  }
1139  }
1140  }
static hasUser()
Based on user authentication?
static supportsPersistentSessions()
Check if context supports persistent session handling.
static initClient()
Init client.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ removeUnsafeCharacters()

static ilInitialisation::removeUnsafeCharacters ( )
staticprotected

Remove unsafe characters from GET.

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

References $_GET.

56  : void
57  {
58  // Remove unsafe characters from GET parameters.
59  // We do not need this characters in any case, so it is
60  // feasible to filter them everytime. POST parameters
61  // need attention through ilUtil::stripSlashes() and similar functions)
62  $_GET = self::recursivelyRemoveUnsafeCharacters($_GET);
63  }
$_GET["client_id"]
Definition: webdav.php:30

◆ requireCommonIncludes()

static ilInitialisation::requireCommonIncludes ( )
staticprotected

get common include code files

Definition at line 91 of file class.ilInitialisation.php.

91  : void
92  {
94  require_once(__DIR__ . "/../../../../ilias_version.php");
95  self::initGlobal("ilBench", "ilBenchmark", "./components/ILIAS/Utilities/classes/class.ilBenchmark.php");
96  }

◆ resumeUserSession()

static ilInitialisation::resumeUserSession ( )
static

Resume an existing user session.

Definition at line 1379 of file class.ilInitialisation.php.

References $_COOKIE, $_SERVER, $DIC, $GLOBALS, ilSession\_destroy(), ILIAS\Survey\Mode\getId(), ilLoggerFactory\getLogger(), ilAuthUtils\handleForcedAuthentication(), ilAuthUtils\isAuthenticationForced(), ilSession\SESSION_CLOSE_EXPIRE, and ilOnlineTracking\updateAccess().

1379  : void
1380  {
1381  global $DIC;
1382 
1385  }
1386 
1387  if (
1388  !$DIC['ilAuthSession']->isAuthenticated() ||
1389  $DIC['ilAuthSession']->isExpired()
1390  ) {
1391  if ($GLOBALS['DIC']['ilAuthSession']->isExpired()) {
1393  }
1394 
1395  ilLoggerFactory::getLogger('init')->debug('Current session is invalid: ' . $GLOBALS['DIC']['ilAuthSession']->getId());
1396  $current_script = substr(strrchr($_SERVER["PHP_SELF"], "/"), 1);
1397  if (self::blockedAuthentication($current_script)) {
1398  ilLoggerFactory::getLogger('init')->debug('Authentication is started in current script.');
1399  // nothing todo: authentication is done in current script
1400  return;
1401  }
1402 
1403  self::handleAuthenticationFail();
1404  return;
1405  }
1406  // valid session
1407 
1408  self::initUserAccount();
1409  }
static getLogger(string $a_component_id)
Get component logger.
static isAuthenticationForced()
Check if authentication is should be forced.
const SESSION_CLOSE_EXPIRE
static handleForcedAuthentication()
$GLOBALS["DIC"]
Definition: wac.php:53
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
global $DIC
Definition: shib_login.php:22
static _destroy($a_session_id, ?int $a_closing_context=null, $a_expired_at=null)
Destroy session.
$_COOKIE[session_name()]
Definition: xapitoken.php:54
+ Here is the call graph for this function:

◆ setClientIdCookie()

static ilInitialisation::setClientIdCookie ( )
staticprivate

Definition at line 676 of file class.ilInitialisation.php.

References CLIENT_ID, ilUtil\setCookie(), and ilContext\supportsPersistentSessions().

676  : void
677  {
678  if (defined('CLIENT_ID') &&
679  !defined('IL_PHPUNIT_TEST') &&
681  ilUtil::setCookie('ilClientId', CLIENT_ID);
682  }
683  }
static setCookie(string $a_cookie_name, string $a_cookie_value='', bool $a_also_set_super_global=true, bool $a_set_cookie_invalid=false)
const CLIENT_ID
Definition: constants.php:41
static supportsPersistentSessions()
Check if context supports persistent session handling.
+ Here is the call graph for this function:

◆ setCookieConstants()

static ilInitialisation::setCookieConstants ( )
staticprotected

Definition at line 645 of file class.ilInitialisation.php.

References $_SERVER, $cookie_path, $GLOBALS, ilAuthFactory\CONTEXT_HTTP, and ilAuthFactory\getContext().

645  : void
646  {
648  $cookie_path = '/';
649  } elseif (isset($GLOBALS['COOKIE_PATH'])) {
650  // use a predefined cookie path from WebAccessChecker
651  $cookie_path = $GLOBALS['COOKIE_PATH'];
652  } else {
653  $cookie_path = dirname($_SERVER['SCRIPT_NAME']);
654  }
655 
656  /* if ilias is called directly within the docroot $cookie_path
657  is set to '/' expecting on servers running under windows..
658  here it is set to '\'.
659  in both cases a further '/' won't be appended due to the following regex
660  */
661  $cookie_path .= (!preg_match("/[\/|\\\\]$/", $cookie_path)) ? "/" : "";
662 
663  if ($cookie_path == "\\") {
664  $cookie_path = '/';
665  }
666 
667  define('IL_COOKIE_HTTPONLY', true); // Default Value
668  define('IL_COOKIE_EXPIRE', 0);
669  define('IL_COOKIE_DOMAIN', '');
670  if (!defined('IL_COOKIE_PATH')) {
671  // Might be already defined by ./public/sso/index.php or other scripts (like those in ./components/ILIAS/SAML/lib/*)
672  define('IL_COOKIE_PATH', $cookie_path);
673  }
674  }
const CONTEXT_HTTP
HTTP Auth used for WebDAV and CalDAV If a special handling for WebDAV or CalDAV is required overwrite...
$GLOBALS["DIC"]
Definition: wac.php:53
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26
$cookie_path
Definition: index.php:29
+ Here is the call graph for this function:

◆ setSessionCookieParams()

static ilInitialisation::setSessionCookieParams ( )
staticprotected

set session cookie params

Definition at line 688 of file class.ilInitialisation.php.

References $DIC, $ilSetting, and IL_COOKIE_PATH.

688  : void
689  {
690  global $ilSetting, $DIC;
691 
692  if (!defined('IL_COOKIE_SECURE')) {
693  // If this code is executed, we can assume that \ilHTTPS::enableSecureCookies was NOT called before
694  // \ilHTTPS::enableSecureCookies already executes session_set_cookie_params()
695 
696  $cookie_secure = !$ilSetting->get('https', '0') && $DIC['https']->isDetected();
697  define('IL_COOKIE_SECURE', $cookie_secure); // Default Value
698 
699  $cookie_parameters = [
700  'lifetime' => IL_COOKIE_EXPIRE,
701  'path' => IL_COOKIE_PATH,
702  'domain' => IL_COOKIE_DOMAIN,
703  'secure' => IL_COOKIE_SECURE,
704  'httponly' => IL_COOKIE_HTTPONLY,
705  ];
706 
707  if (
708  $cookie_secure &&
709  (!isset(session_get_cookie_params()['samesite']) || strtolower(session_get_cookie_params()['samesite']) !== 'strict')
710  ) {
711  $cookie_parameters['samesite'] = 'Lax';
712  }
713 
714  session_set_cookie_params($cookie_parameters);
715  }
716  }
global $DIC
Definition: shib_login.php:22
global $ilSetting
Definition: privfeed.php:31
const IL_COOKIE_PATH(isset($_GET['client_id']))
Definition: index.php:47

◆ setSessionHandler()

static ilInitialisation::setSessionHandler ( )
static

set session handler to db Used in Soap/CAS

Definition at line 626 of file class.ilInitialisation.php.

References ilSession\_exists().

626  : void
627  {
628  $db_session_handler = new ilSessionDBHandler();
629  if (!$db_session_handler->setSaveHandler()) {
630  self::abortAndDie("Cannot start session handling.");
631  }
632 
633  // Do not accept external session ids
634  if (!ilSession::_exists(session_id()) && !defined('IL_PHPUNIT_TEST')) {
635  // php7-todo, correct-with-php5-removal : alex, 1.3.2016: added if, please check
636  if (function_exists("session_status") && session_status() == PHP_SESSION_ACTIVE) {
637  session_regenerate_id();
638  }
639  }
640  }
static _exists(string $a_session_id)
Check whether session exists.
Database Session Handling.
+ Here is the call graph for this function:

◆ translateMessage()

static ilInitialisation::translateMessage ( string  $a_message_id,
?array  $a_message_static = null 
)
staticprotected

Translate message if possible.

Definition at line 1753 of file class.ilInitialisation.php.

References $ilDB, $ilSetting, $lang, $lng, and $message.

1753  : string
1754  {
1755  global $ilDB, $lng, $ilSetting, $ilClientIniFile, $ilUser;
1756 
1757  // current language
1758  if (!$lng) {
1759  $lang = "en";
1760  if ($ilUser) {
1761  $lang = $ilUser->getLanguage();
1762  } elseif (isset($_REQUEST["lang"])) {
1763  $lang = (string) $_REQUEST["lang"];
1764  } elseif ($ilSetting) {
1765  $lang = $ilSetting->get("language", '');
1766  } elseif ($ilClientIniFile) {
1767  $lang = $ilClientIniFile->readVariable("language", "default");
1768  }
1769  } else {
1770  $lang = $lng->getLangKey();
1771  }
1772 
1773  $message = "";
1774  if ($ilDB && $a_message_id) {
1775  if (!$lng) {
1776  $lng = new ilLanguage($lang);
1777  }
1778 
1779  $lng->loadLanguageModule("init");
1780  $message = $lng->txt($a_message_id);
1781  } elseif (is_array($a_message_static)) {
1782  if (!isset($a_message_static[$lang])) {
1783  $lang = "en";
1784  }
1785  $message = $a_message_static[$lang];
1786  }
1787  return $message;
1788  }
$lang
Definition: xapiexit.php:25
global $ilSetting
Definition: privfeed.php:31
global $lng
Definition: privfeed.php:31
$message
Definition: xapiexit.php:31

Field Documentation

◆ $already_initialized

bool ilInitialisation::$already_initialized = false
staticprotected

Definition at line 1122 of file class.ilInitialisation.php.


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