ILIAS  release_8 Revision v8.24
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 initUIFramework (\ILIAS\DI\Container $c)
 init the ILIAS UI framework. More...
 
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 includePhp5Compliance ()
 This is a hack for authentication. 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 buildHTTPPath ()
 builds http path More...
 
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 setCookieConstants ()
 
static setSessionCookieParams ()
 set session cookie params More...
 
static initMail (\ILIAS\DI\Container $c)
 
static initCron (\ILIAS\DI\Container $c)
 
static initCustomObjectIcons (\ILIAS\DI\Container $c)
 
static initAvatar (\ILIAS\DI\Container $c)
 
static initTermsOfService (\ILIAS\DI\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... initialisation 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 initRefinery (\ILIAS\DI\Container $container)
 
static initComponentService (\ILIAS\DI\Container $container)
 
static initHTML ()
 init HTML output (level 3) More...
 
static getCurrentCmd ()
 
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 \ILIAS\HTTP 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)
 

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 71 of file class.ilInitialisation.php.

Member Function Documentation

◆ abortAndDie()

static ilInitialisation::abortAndDie ( string  $a_message)
staticprotected

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

1183 : void
1184 {
1185 if (isset($GLOBALS['ilLog'])) {
1186 $GLOBALS['ilLog']->write("Fatal Error: ilInitialisation - " . $a_message);
1187 $GLOBALS['ilLog']->logStack();
1188 }
1189 die($a_message);
1190 }
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64

References $GLOBALS.

Referenced by determineClient(), goToPublicSection(), handleMaintenanceMode(), initClientIniFile(), initSettings(), initUserAccount(), and setSessionHandler().

+ Here is the caller graph for this function:

◆ blockedAuthentication()

static ilInitialisation::blockedAuthentication ( string  $a_current_script)
staticprotected

Block authentication based on current request.

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

1738 : bool
1739 {
1740 global $DIC;
1741
1743 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for WAC request.');
1744 return true;
1745 }
1747 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for sso request.');
1748 return true;
1749 }
1751 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for webdav request');
1752 return true;
1753 }
1755 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for shibboleth request.');
1756 return true;
1757 }
1759 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for lti provider requests.');
1760 return true;
1761 }
1763 ilLoggerFactory::getLogger('init')->debug('Blocked authentication for SAML request.');
1764 return true;
1765 }
1766 if (
1767 $a_current_script == "register.php" ||
1768 $a_current_script == "pwassist.php" ||
1769 $a_current_script == "confirmReg.php" ||
1770 $a_current_script == "il_securimage_play.php" ||
1771 $a_current_script == "il_securimage_show.php" ||
1772 $a_current_script == 'login.php'
1773 ) {
1774 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for script: ' . $a_current_script);
1775 return true;
1776 }
1777
1778 $requestBaseClass = strtolower((string) ($_GET['baseClass'] ?? ''));
1779 if ($requestBaseClass == strtolower(ilStartUpGUI::class)) {
1780 $requestCmdClass = strtolower((string) ($_GET['cmdClass'] ?? ''));
1781 if (
1782 $requestCmdClass == strtolower(ilAccountRegistrationGUI::class) ||
1783 $requestCmdClass == strtolower(ilPasswordAssistanceGUI::class)
1784 ) {
1785 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmdClass: ' . $requestCmdClass);
1786 return true;
1787 }
1788 $cmd = self::getCurrentCmd();
1789 if (
1790 $cmd == "showTermsOfService" ||
1791 $cmd == 'showAccountMigration' || $cmd == 'migrateAccount' ||
1792 $cmd == 'processCode' || $cmd == 'showLoginPage' || $cmd == 'showLogout' ||
1793 $cmd == 'doStandardAuthentication' || $cmd == 'doCasAuthentication'
1794 ) {
1795 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmd: ' . $cmd);
1796 return true;
1797 }
1798 }
1799
1800 $target = '';
1801 if ($DIC->http()->wrapper()->query()->has('target')) {
1802 // @todo refinery undefind
1803 $target = $_GET['target'];
1804 }
1805
1806 // #12884
1807 if (
1808 ($a_current_script == "goto.php" && $target == "impr_0") ||
1809 $requestBaseClass == strtolower(ilImprintGUI::class)
1810 ) {
1811 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for baseClass: ' . ($_GET['baseClass'] ?? ""));
1812 return true;
1813 }
1814
1815 if (
1816 (strtolower($requestCmdClass ?? "") === strtolower(ilAccessibilityControlConceptGUI::class))
1817 ) {
1818 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for cmdClass: ' . $requestCmdClass);
1819 return true;
1820 }
1821
1822 if ($a_current_script == 'goto.php' && in_array($target, array(
1823 'usr_registration',
1824 'usr_nameassist',
1825 'usr_pwassist',
1826 'usr_agreement'
1827 ))) {
1828 ilLoggerFactory::getLogger('auth')->debug('Blocked authentication for goto target: ' . $target);
1829 return true;
1830 }
1831 ilLoggerFactory::getLogger('auth')->debug('Authentication required');
1832 return false;
1833 }
if(!isset($GLOBALS['ilGlobalStartTime'])||! $GLOBALS['ilGlobalStartTime']) global $DIC
const CONTEXT_WEBDAV
const CONTEXT_SHIBBOLETH
const CONTEXT_APACHE_SSO
const CONTEXT_SAML
static getType()
Get context type.
const CONTEXT_LTI_PROVIDER
const CONTEXT_WAC
static getLogger(string $a_component_id)
Get component logger.
$_GET['client_id']
Definition: saml1-acs.php:21

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

+ Here is the call graph for this function:

◆ buildHTTPPath()

static ilInitialisation::buildHTTPPath ( )
staticprotected

builds http path

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

379 : bool
380 {
381 global $DIC;
382
383 if ($DIC['https']->isDetected()) {
384 $protocol = 'https://';
385 } else {
386 $protocol = 'http://';
387 }
388 $host = $_SERVER['HTTP_HOST'];
389
390 $rq_uri = strip_tags($_SERVER['REQUEST_URI']);
391
392 // security fix: this failed, if the URI contained "?" and following "/"
393 // -> we remove everything after "?"
394 if (is_int($pos = strpos($rq_uri, "?"))) {
395 $rq_uri = substr($rq_uri, 0, $pos);
396 }
397
398 if (!defined('ILIAS_MODULE')) {
399 $path = pathinfo($rq_uri);
400 if (isset($path['extension']) && $path['extension'] !== '') {
401 $uri = dirname($rq_uri);
402 } else {
403 $uri = $rq_uri;
404 }
405 } else {
406 // if in module remove module name from HTTP_PATH
407 $path = dirname($rq_uri);
408
409 // dirname cuts the last directory from a directory path e.g content/classes return content
411
412 $dirs = explode('/', $module);
413 $uri = $path;
414 foreach ($dirs as $dir) {
415 $uri = dirname($uri);
416 }
417 }
418
419 $ilias_http_path = ilContext::modifyHttpPath(implode('', [$protocol, $host, $uri]));
420
421 // remove everything after the first .php in the path
422 $ilias_http_path = preg_replace('/(http|https)(:\/\/)(.*?\/.*?\.php).*/', '$1$2$3', $ilias_http_path);
423
424 $f = new \ILIAS\Data\Factory();
425 $uri = $f->uri(ilFileUtils::removeTrailingPathSeparators($ilias_http_path));
426
427 $base_URI = $uri->getBaseURI();
428
429 return define('ILIAS_HTTP_PATH', $base_URI);
430 }
static modifyHttpPath(string $httpPath)
static removeTrailingPathSeparators(string $path)
$path
Definition: ltiservices.php:32
$_SERVER['HTTP_HOST']
Definition: raiseError.php:10
const ILIAS_MODULE
Definition: server.php:14

References $_SERVER, $DIC, Vendor\Package\$f, $path, ILIAS_MODULE, ilContext\modifyHttpPath(), and ilFileUtils\removeTrailingPathSeparators().

Referenced by initSettings().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ determineClient()

static ilInitialisation::determineClient ( )
staticprotected

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

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

436 : void
437 {
438 if (defined('CLIENT_ID')) {
439 return;
440 }
441 global $DIC;
442 $df = new \ILIAS\Data\Factory();
443
444 // check whether ini file object exists
445 if (!$DIC->isDependencyAvailable('iliasIni')) {
446 self::abortAndDie('Fatal Error: ilInitialisation::determineClient called without initialisation of ILIAS ini file object.');
447 }
448
449 // determine the available clientIds (default, request, cookie)
450 $default_client_id = $DIC->iliasIni()->readVariable('clients', 'default');
451
452 if ($DIC->http()->wrapper()->query()->has('client_id')) {
453 $client_id_from_get = $DIC->http()->wrapper()->query()->retrieve(
454 'client_id',
455 self::getClientIdTransformation()
456 );
457 }
458 if ($DIC->http()->wrapper()->cookie()->has('ilClientId')) {
459 $client_id_from_cookie = $DIC->http()->wrapper()->cookie()->retrieve(
460 'ilClientId',
461 self::getClientIdTransformation()
462 );
463 }
464
465 // set the clientId by availability: 1. request, 2. cookie, fallback to defined default
466 $client_id_to_use = '';
467 if (isset($client_id_from_get) && $client_id_from_get !== '') {
468 $client_id_to_use = $client_id_from_get;
469 }
470
471 if ($client_id_to_use === '' && isset($client_id_from_cookie)) {
472 $client_id_to_use = $client_id_from_cookie;
473 }
474
475 $client_id_to_use = $client_id_to_use ?: $default_client_id;
476
477 define('CLIENT_ID', $df->clientId($client_id_to_use)->toString());
478 }
static abortAndDie(string $a_message)

References $DIC, and abortAndDie().

+ 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 \ILIAS\HTTP implementation to retrieve the parameters.

Instead, this implementation here will be used.

Returns
Transformation implementation of a transformation to get the clientId.

@inheritDoc

@inheritDoc

@inheritDoc

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

488 {
489 return new class () implements Transformation {
493 public function transform($from): string
494 {
495 if (!is_string($from)) {
496 throw new InvalidArgumentException(__METHOD__ . " the argument is not a string.");
497 }
498 return strip_tags($from);
499 }
500
504 public function applyTo(Result $result): Result
505 {
506 return $result->then(function ($value): Result {
507 try {
508 return new Ok($this->transform($value));
509 } catch (Exception $exception) {
510 return new Error($exception);
511 }
512 });
513 }
514
518 public function __invoke($from): string
519 {
520 return $this->transform($from);
521 }
522 };
523 }
A result encapsulates a value or an error and simplifies the handling of those.
Definition: Error.php:18
A result encapsulates a value or an error and simplifies the handling of those.
Definition: Ok.php:17
A result encapsulates a value or an error and simplifies the handling of those.
Definition: Result.php:15
then(callable $f)
Get a new result from the callable or do nothing if this is an error.
A transformation is a function from one datatype to another.
applyTo(Result $result)
@inheritDoc
__invoke($from)
@inheritDoc

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

+ Here is the call graph for this function:

◆ getCurrentCmd()

static ilInitialisation::getCurrentCmd ( )
staticprotected

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

1723 : string
1724 {
1725 $cmd = $_POST['cmd'] ?? ($_GET['cmd'] ?? '');
1726
1727 if (is_array($cmd)) {
1728 $cmd_keys = array_keys($cmd);
1729 $cmd = array_shift($cmd_keys) ?? '';
1730 }
1731
1732 return $cmd;
1733 }

References $_GET.

◆ goToLogin()

static ilInitialisation::goToLogin ( )
staticprotected

go to login

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

1043 : void
1044 {
1045 global $DIC;
1046
1047 $session_expired = false;
1048 ilLoggerFactory::getLogger('init')->debug('Redirecting to login page.');
1049
1050 if ($DIC['ilAuthSession']->isExpired()) {
1052 $session_expired = true;
1053 }
1054 if (!$DIC['ilAuthSession']->isAuthenticated()) {
1056 }
1057
1058 $target = $DIC->http()->wrapper()->query()->has('target')
1059 ? $DIC->http()->wrapper()->query()->retrieve(
1060 'target',
1061 $DIC->refinery()->kindlyTo()->string()
1062 )
1063 : '';
1064
1065 if (strlen($target)) {
1066 $target = "target=" . $target . "&";
1067 }
1068
1069 $client_id = $DIC->http()->wrapper()->cookie()->retrieve(
1070 'ilClientId',
1071 $DIC->refinery()->byTrying([
1072 $DIC->refinery()->kindlyTo()->string(),
1073 $DIC->refinery()->always('')
1074 ])
1075 );
1076 $script = "login.php?" . $target . "client_id=" . $client_id;
1077 $script .= $session_expired ? "&session_expired=1" : "";
1078
1080 $script,
1081 "init_error_authentication_fail",
1082 array(
1083 "en" => "Authentication failed.",
1084 "de" => "Authentifizierung fehlgeschlagen."
1085 )
1086 );
1087 }
static redirect(string $a_target, string $a_message_id='', array $a_message_static=null)
Redirects to target url if context supports it.
const SESSION_CLOSE_LOGIN
static setClosingContext(int $a_context)
set closing context (for statistics)
const SESSION_CLOSE_EXPIRE
$client_id
Definition: ltiauth.php:68

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

+ Here is the call graph for this function:

◆ goToPublicSection()

static ilInitialisation::goToPublicSection ( )
static

go to public section

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

989 : void
990 {
991 global $DIC;
992
993 if (ANONYMOUS_USER_ID == "") {
994 self::abortAndDie("Public Section enabled, but no Anonymous user found.");
995 }
996
997 $session_destroyed = false;
998 if ($DIC['ilAuthSession']->isExpired()) {
999 $session_destroyed = true;
1001 }
1002 if (!$DIC['ilAuthSession']->isAuthenticated()) {
1003 $session_destroyed = true;
1005 }
1006
1007 if ($session_destroyed) {
1008 $GLOBALS['DIC']['ilAuthSession']->setAuthenticated(true, ANONYMOUS_USER_ID);
1009 }
1010
1012
1013 $target = '';
1014 if ($DIC->http()->wrapper()->query()->has('target')) {
1015 $target = $DIC->http()->wrapper()->query()->retrieve(
1016 'target',
1017 $DIC->refinery()->kindlyTo()->string()
1018 );
1019 }
1020
1021 // if target given, try to go there
1022 if (strlen($target)) {
1023 // when we are already "inside" goto.php no redirect is needed
1024 $current_script = substr(strrchr($_SERVER["PHP_SELF"], "/"), 1);
1025 if ($current_script == "goto.php") {
1026 return;
1027 }
1028 // goto will check if target is accessible or redirect to login
1029 self::redirect("goto.php?target=" . $_GET["target"]);
1030 }
1031
1032 // we do not know if ref_id of request is accesible, so redirecting to root
1034 "ilias.php?baseClass=ilrepositorygui&reloadpublic=1&cmd=&ref_id=" . (defined(
1035 'ROOT_FOLDER_ID'
1036 ) ? (string) ROOT_FOLDER_ID : '0')
1037 );
1038 }
static initUserAccount()
Init user with current account id.
const SESSION_CLOSE_PUBLIC
const ANONYMOUS_USER_ID
Definition: constants.php:27
const ROOT_FOLDER_ID
Definition: constants.php:32

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleAuthenticationFail()

static ilInitialisation::handleAuthenticationFail ( )
staticprotected

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

1517 : void
1518 {
1519 global $DIC;
1520
1521 ilLoggerFactory::getLogger('init')->debug('Handling of failed authentication.');
1522
1523 // #10608
1524 if (
1527 throw new Exception("Authentication failed.");
1528 }
1529
1530 if (($DIC->http()->request()->getQueryParams()['cmdMode'] ?? 0) === 'asynch') {
1531 $DIC->language()->loadLanguageModule('init');
1532 $DIC->http()->saveResponse(
1533 $DIC->http()->response()
1534 ->withStatus(403)
1535 ->withBody(Streams::ofString($DIC->language()->txt('init_error_authentication_fail')))
1536 );
1537 $DIC->http()->sendResponse();
1538 $DIC->http()->close();
1539 }
1540 if (
1541 $DIC['ilAuthSession']->isExpired() &&
1542 !\ilObjUser::_isAnonymous($DIC['ilAuthSession']->getUserId())
1543 ) {
1544 ilLoggerFactory::getLogger('init')->debug('Expired session found -> redirect to login page');
1546 return;
1547 }
1548 if (ilPublicSectionSettings::getInstance()->isEnabledForDomain($_SERVER['SERVER_NAME'])) {
1549 ilLoggerFactory::getLogger('init')->debug('Redirect to public section.');
1551 return;
1552 }
1553 ilLoggerFactory::getLogger('init')->debug('Redirect to login page.');
1555 }
const CONTEXT_SOAP
static goToLogin()
go to login
static goToPublicSection()
go to public section
static _isAnonymous(int $usr_id)

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

+ Here is the call graph for this function:

◆ handleDevMode()

static ilInitialisation::handleDevMode ( )
staticprotected

Prepare developer tools.

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

1195 : void
1196 {
1197 if ((defined(SHOWNOTICES) && SHOWNOTICES) || version_compare(PHP_VERSION, '8.0', '>=')) {
1198 error_reporting(-1);
1199 }
1200 }

◆ handleErrorReporting()

static ilInitialisation::handleErrorReporting ( )
static

Set error reporting level.

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

1296 : void
1297 {
1298 // push the error level as high as possible / sane
1299 error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
1300
1301 // see handleDevMode() - error reporting might be overwritten again
1302 // but we need the client ini first
1303 }

Referenced by ilWebAccessCheckerDelivery\handleRequest().

+ Here is the caller graph for this function:

◆ handleMaintenanceMode()

static ilInitialisation::handleMaintenanceMode ( )
staticprotected

handle maintenance mode

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

621 : void
622 {
623 global $ilClientIniFile;
624
625 if (!$ilClientIniFile->readVariable("client", "access")) {
626 $mess = array(
627 "en" => "The server is not available due to maintenance." .
628 " We apologise for any inconvenience.",
629 "de" => "Der Server ist aufgrund von Wartungsarbeiten aktuell nicht verfügbar." .
630 " Wir bitten um Verständnis. Versuchen Sie es später noch einmal."
631 );
632 $mess_id = "init_error_maintenance";
633
634 if (ilContext::hasHTML() && is_file("./maintenance.html")) {
635 self::redirect("./maintenance.html", $mess_id, $mess);
636 } else {
637 $mess = self::translateMessage($mess_id, $mess);
638 self::abortAndDie($mess);
639 }
640 }
641 }
static hasHTML()
Has HTML output.
static translateMessage(string $a_message_id, array $a_message_static=null)
Translate message if possible.

References abortAndDie(), ilContext\hasHTML(), redirect(), and translateMessage().

+ Here is the call graph for this function:

◆ includePhp5Compliance()

static ilInitialisation::includePhp5Compliance ( )
staticprotected

This is a hack for authentication.

Since the phpCAS lib ships with its own compliance functions.

@noRector

@noRector

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

123 : void
124 {
127 require_once("include/inc.xml5compliance.php");
128 }
130 require_once("include/inc.xsl5compliance.php");
131 }

References ilAuthFactory\CONTEXT_CAS, and ilAuthFactory\getContext().

+ Here is the call graph for this function:

◆ initAccessHandling()

static ilInitialisation::initAccessHandling ( )
staticprotected

$ilAccess and $rbac... initialisation

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

1117 : void
1118 {
1120 'rbacreview',
1121 'ilRbacReview',
1122 './Services/AccessControl/classes/class.ilRbacReview.php',
1123 true
1124 );
1125
1126 $rbacsystem = ilRbacSystem::getInstance();
1127 self::initGlobal('rbacsystem', $rbacsystem, null, true);
1128
1130 'rbacadmin',
1131 'ilRbacAdmin',
1132 './Services/AccessControl/classes/class.ilRbacAdmin.php',
1133 true
1134 );
1135
1137 'ilAccess',
1138 'ilAccess',
1139 './Services/AccessControl/classes/class.ilAccess.php',
1140 true
1141 );
1142 }
static initGlobal(string $a_name, $a_class, ?string $a_source_file=null, ?bool $destroy_existing=false)

References ilRbacSystem\getInstance(), and initGlobal().

+ Here is the call graph for this function:

◆ initAccessibilityControlConcept()

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

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

846 : void
847 {
848 $c['acc.criteria.type.factory'] = function (\ILIAS\DI\Container $c) {
849 return new ilAccessibilityCriterionTypeFactory($c->rbac()->review(), $c['ilObjDataCache']);
850 };
851
852 $c['acc.document.evaluator'] = function (\ILIAS\DI\Container $c) {
855 $c['acc.criteria.type.factory'],
856 $c->user(),
857 $c->logger()->acc()
858 ),
859 $c->user(),
860 $c->logger()->acc(),
861 \ilAccessibilityDocument::orderBy('sorting')->get()
862 );
863 };
864 }
static orderBy($orderBy, string $orderDirection='ASC')
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:32
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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$c
Definition: cli.php:38

References $c, and ActiveRecord\orderBy().

+ Here is the call graph for this function:

◆ initAvatar()

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

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

802 : void
803 {
804 $c["user.avatar.factory"] = function ($c) {
805 return new \ilUserAvatarFactory($c);
806 };
807 }

References $c.

◆ initBackgroundTasks()

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

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

1966 : void
1967 {
1968 global $ilIliasIniFile;
1969
1970 $n_of_tasks = $ilIliasIniFile->readVariable("background_tasks", "number_of_concurrent_tasks");
1971 $sync = $ilIliasIniFile->readVariable("background_tasks", "concurrency");
1972
1973 $n_of_tasks = $n_of_tasks ?: 5;
1974 $sync = $sync ?: 'sync'; // The default value is sync.
1975
1976 $c["bt.task_factory"] = function ($c) {
1977 return new \ILIAS\BackgroundTasks\Implementation\Tasks\BasicTaskFactory($c["di.injector"]);
1978 };
1979
1980 $c["bt.persistence"] = function ($c) {
1981 return \ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::instance($c->database());
1982 };
1983
1984 $c["bt.injector"] = function ($c) {
1985 return new \ILIAS\BackgroundTasks\Dependencies\Injector($c, new BaseDependencyMap());
1986 };
1987
1988 $c["bt.task_manager"] = function ($c) use ($sync) {
1989 if ($sync == 'sync') {
1990 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\SyncTaskManager($c["bt.persistence"]);
1991 } elseif ($sync == 'async') {
1992 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\AsyncTaskManager($c["bt.persistence"]);
1993 } else {
1994 throw new ilException("The supported Background Task Managers are sync and async. $sync given.");
1995 }
1996 };
1997 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$ilIliasIniFile
Definition: imgupload.php:32

References $c, and $ilIliasIniFile.

◆ initClient()

static ilInitialisation::initClient ( )
staticprotected

Init client-based objects (level 1)

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

1347 : void
1348 {
1349 global $https, $ilias, $DIC;
1350
1352
1354
1355 self::bootstrapFilesystems();
1356
1358
1360
1361 // --- needs client ini
1362
1363 $ilias->client_id = (string) CLIENT_ID;
1364
1365 if (DEVMODE) {
1367 }
1368
1370
1372
1374
1375 // init dafault language
1376 self::initLanguage(false);
1377
1378 // moved after databases
1379 self::initLog();
1380
1382 "ilAppEventHandler",
1383 "ilAppEventHandler",
1384 "./Services/EventHandling/classes/class.ilAppEventHandler.php"
1385 );
1386
1387 // there are rare cases where initILIAS is called twice for a request
1388 // example goto.php is called and includes ilias.php later
1389 // we must prevent that ilPluginAdmin is initialized twice in
1390 // this case, since this won't get the values out of plugin.php the
1391 // second time properly
1392 if (!isset($DIC["ilPluginAdmin"]) || !$DIC["ilPluginAdmin"] instanceof ilPluginAdmin) {
1394 "ilPluginAdmin",
1395 new ilPluginAdmin($DIC["component.repository"]),
1396 "./Services/Component/classes/class.ilPluginAdmin.php"
1397 );
1398 }
1399 self::initGlobal("https", "ilHTTPS", "./Services/Http/classes/class.ilHTTPS.php");
1402 self::initMail($GLOBALS['DIC']);
1403 self::initCron($GLOBALS['DIC']);
1404 self::initAvatar($GLOBALS['DIC']);
1408
1409 // --- needs settings
1410
1412
1413 if (ilContext::usesHTTP()) {
1414 $https->enableSecureCookies();
1415 $https->checkProtocolAndRedirectIfNeeded();
1416 }
1417
1418 // --- object handling
1419
1421 "ilObjDataCache",
1422 "ilObjectDataCache",
1423 "./Services/Object/classes/class.ilObjectDataCache.php"
1424 );
1425
1427 "objDefinition",
1428 "ilObjectDefinition",
1429 "./Services/Object/classes/class.ilObjectDefinition.php"
1430 );
1431
1432 // $tree
1433 $tree = new ilTree(ROOT_FOLDER_ID);
1434 self::initGlobal("tree", $tree);
1435 unset($tree);
1436
1439
1441
1442 (new InitCtrlService())->init($DIC);
1443
1444 // Init GlobalScreen
1446 }
Class InitCtrlService wraps the initialization of ilCtrl.
static usesHTTP()
Uses HTTP aka browser.
static initDatabase()
initialise database object $ilDB
static initLocale()
Init Locale.
static initClientIniFile()
This method provides a global instance of class ilIniFile for the client.ini.php file in variable $il...
static initComponentService(\ILIAS\DI\Container $container)
static determineClient()
This method determines the current client and sets the constant CLIENT_ID.
static initLog()
Init log instance.
static initAvatar(\ILIAS\DI\Container $c)
static setSessionHandler()
set session handler to db Used in Soap/CAS
static handleDevMode()
Prepare developer tools.
static setSessionCookieParams()
set session cookie params
static initSettings()
initialise $ilSettings object and define constants Used in Soap
static initGlobalScreen(\ILIAS\DI\Container $c)
static initMail(\ILIAS\DI\Container $c)
static initTermsOfService(\ILIAS\DI\Container $c)
static initRefinery(\ILIAS\DI\Container $container)
static initAccessibilityControlConcept(\ILIAS\DI\Container $c)
static handleMaintenanceMode()
handle maintenance mode
static initCustomObjectIcons(\ILIAS\DI\Container $c)
static initCron(\ILIAS\DI\Container $c)
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...
const CLIENT_ID
Definition: constants.php:41
$https
Definition: imgupload.php:35

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

+ 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

Reimplemented in XapiProxy\ilInitialisation.

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

534 : void
535 {
536 global $ilIliasIniFile;
537
538 // check whether ILIAS_WEB_DIR is set.
539 if (ILIAS_WEB_DIR == "") {
540 self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile called without ILIAS_WEB_DIR.");
541 }
542
543 // check whether CLIENT_ID is set.
544 if (CLIENT_ID == "") {
545 self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile called without CLIENT_ID.");
546 }
547
548 $ini_file = "/client.ini.php";
549 if (defined('CLIENT_WEB_DIR')) {
550 $ini_file = CLIENT_WEB_DIR . $ini_file;
551 } else {
552 $ini_file = "./" . ILIAS_WEB_DIR . "/" . CLIENT_ID . "/client.ini.php";
553 }
554
555 // get settings from ini file
556 $ilClientIniFile = new ilIniFile($ini_file);
557 $ilClientIniFile->read();
558
559 // invalid client id / client ini
560 if ($ilClientIniFile->ERROR != "") {
561 $default_client = $ilIliasIniFile->readVariable("clients", "default");
562 if (CLIENT_ID !== "") {
563 $mess = array("en" => "Client does not exist.",
564 "de" => "Mandant ist ungültig."
565 );
566 self::redirect("index.php?client_id=" . $default_client, '', $mess);
567 } else {
568 self::abortAndDie("Fatal Error: ilInitialisation::initClientIniFile initializing client ini file abborted with: " . $ilClientIniFile->ERROR);
569 }
570 }
571
572 self::initGlobal("ilClientIniFile", $ilClientIniFile);
573 // set constants
574 define("DEBUG", (int) $ilClientIniFile->readVariable("system", "DEBUG"));
575 define("DEVMODE", (int) $ilClientIniFile->readVariable("system", "DEVMODE"));
576 define("SHOWNOTICES", (int) $ilClientIniFile->readVariable("system", "SHOWNOTICES"));
577 if (!defined("ROOT_FOLDER_ID")) {
578 define("ROOT_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'ROOT_FOLDER_ID'));
579 }
580 if (!defined("SYSTEM_FOLDER_ID")) {
581 define("SYSTEM_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'SYSTEM_FOLDER_ID'));
582 }
583 if (!defined("ROLE_FOLDER_ID")) {
584 define("ROLE_FOLDER_ID", (int) $ilClientIniFile->readVariable('system', 'ROLE_FOLDER_ID'));
585 }
586 define("MAIL_SETTINGS_ID", (int) $ilClientIniFile->readVariable('system', 'MAIL_SETTINGS_ID'));
587 $error_handler = $ilClientIniFile->readVariable('system', 'ERROR_HANDLER');
588 define("ERROR_HANDLER", $error_handler ?: "PRETTY_PAGE");
589
590 // this is for the online help installation, which sets OH_REF_ID to the
591 // ref id of the online module
592 define("OH_REF_ID", (int) $ilClientIniFile->readVariable("system", "OH_REF_ID"));
593
594 // see ilObject::TITLE_LENGTH, ilObject::DESC_LENGTH
595 // define ("MAXLENGTH_OBJ_TITLE",125);#$ilClientIniFile->readVariable('system','MAXLENGTH_OBJ_TITLE'));
596 // define ("MAXLENGTH_OBJ_DESC",$ilClientIniFile->readVariable('system','MAXLENGTH_OBJ_DESC'));
597
598 if (!defined("CLIENT_DATA_DIR")) {
599 define("CLIENT_DATA_DIR", ILIAS_DATA_DIR . "/" . CLIENT_ID);
600 }
601 if (!defined("CLIENT_WEB_DIR")) {
602 define("CLIENT_WEB_DIR", ILIAS_ABSOLUTE_PATH . "/" . ILIAS_WEB_DIR . "/" . CLIENT_ID);
603 }
604 define("CLIENT_NAME", $ilClientIniFile->readVariable('client', 'name')); // Change SS
605
606 $db_type = $ilClientIniFile->readVariable("db", "type");
607 if ($db_type === "") {
608 define("IL_DB_TYPE", ilDBConstants::TYPE_INNODB);
609 } else {
610 define("IL_DB_TYPE", $db_type);
611 }
612
613 $ilGlobalCacheSettings = new ilGlobalCacheSettings();
614 $ilGlobalCacheSettings->readFromIniFile($ilClientIniFile);
615 ilGlobalCache::setup($ilGlobalCacheSettings);
616 }
Class ilGlobalCacheSettings.
static setup(ilGlobalCacheSettings $ilGlobalCacheSettings)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const ILIAS_DATA_DIR
Definition: constants.php:44
const ILIAS_WEB_DIR
Definition: constants.php:45
const CLIENT_WEB_DIR
Definition: constants.php:47

References $ilIliasIniFile, abortAndDie(), CLIENT_ID, CLIENT_WEB_DIR, ILIAS_DATA_DIR, ILIAS_WEB_DIR, initGlobal(), redirect(), ilGlobalCache\setup(), and ilDBConstants\TYPE_INNODB.

+ Here is the call graph for this function:

◆ initComponentService()

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

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

1643 : void
1644 {
1645 $init = new InitComponentService();
1646 $init->init($container);
1647 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$container
@noRector
Definition: wac.php:14

References $container.

◆ initCore()

static ilInitialisation::initCore ( )
staticprotected

Init core objects (level 0)

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

1308 : void
1309 {
1310 global $ilErr;
1311
1313
1314 // breaks CAS: must be included after CAS context isset in AuthUtils
1315 //self::includePhp5Compliance();
1316
1318
1319 $GLOBALS["DIC"]["ilias.version"] = (new ILIAS\Data\Factory())->version(ILIAS_VERSION_NUMERIC);
1320
1321 // error handler
1323 "ilErr",
1324 "ilErrorHandling",
1325 "./Services/Init/classes/class.ilErrorHandling.php"
1326 );
1329 [
1330 $ilErr, 'errorHandler'
1331 ]
1332 );
1333
1335
1337
1338 define('IL_INITIAL_WD', getcwd());
1339
1340 // deprecated
1341 self::initGlobal("ilias", "ILIAS", "./Services/Init/classes/class.ilias.php");
1342 }
const PEAR_ERROR_CALLBACK
Definition: PEAR.php:35
Builds data types.
Definition: Factory.php:21
static setErrorHandling($mode=null, $options=null)
Sets how errors generated by this object should be handled.
Definition: PEAR.php:337
static removeUnsafeCharacters()
Remove unsafe characters from GET.
static requireCommonIncludes()
get common include code files
static handleErrorReporting()
Set error reporting level.
static initIliasIniFile()
This method provides a global instance of class ilIniFile for the ilias.ini.php file in variable $ilI...
const ILIAS_VERSION_NUMERIC
$ilErr
Definition: raiseError.php:17

References $GLOBALS, $ilErr, ILIAS_VERSION_NUMERIC, PEAR_ERROR_CALLBACK, and PEAR\setErrorHandling().

+ Here is the call graph for this function:

◆ initCron()

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

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

765 : void
766 {
767 $c['cron.repository'] = static function (\ILIAS\DI\Container $c): ilCronJobRepository {
768 return new ilCronJobRepositoryImpl(
769 $c->database(),
770 $c->settings(),
771 $c->logger()->cron(),
772 $c['component.repository'],
773 $c['component.factory']
774 );
775 };
776
777 $c['cron.manager'] = static function (\ILIAS\DI\Container $c): ilCronManager {
778 return new ilCronManagerImpl(
779 $c['cron.repository'],
780 $c->database(),
781 $c->settings(),
782 $c->logger()->cron(),
783 (new \ILIAS\Data\Factory())->clock()
784 );
785 };
786 }
Class ChatMainBarProvider \MainMenu\Provider.

References $c.

◆ initCustomObjectIcons()

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

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

791 : void
792 {
793 $c["object.customicons.factory"] = function ($c) {
794 return new ilObjectCustomIconFactory(
795 $c->filesystem()->web(),
796 $c->upload(),
797 $c['ilObjDataCache']
798 );
799 };
800 }

References $c.

◆ initDatabase()

static ilInitialisation::initDatabase ( )
staticprotected

initialise database object $ilDB

Reimplemented in XapiProxy\ilInitialisation.

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

646 : void
647 {
648 // build dsn of database connection and connect
650 $ilDB->initFromIniFile();
651 $ilDB->connect();
652
653 self::initGlobal("ilDB", $ilDB);
654 }
static getWrapper(string $a_type)

References $ilDB, ilDBWrapperFactory\getWrapper(), and initGlobal().

+ 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 341 of file class.ilInitialisation.php.

341 : void
342 {
343 $dic['upload.processor-manager'] = function ($c) {
344 return new PreProcessorManagerImpl();
345 };
346
347 $dic['upload'] = function (\ILIAS\DI\Container $c) {
348 $fileUploadImpl = new \ILIAS\FileUpload\FileUploadImpl(
349 $c['upload.processor-manager'],
350 $c['filesystem'],
351 $c['http']
352 );
353 if ((defined('IL_VIRUS_SCANNER') && IL_VIRUS_SCANNER != "None") || (defined('IL_SCANNER_TYPE') && IL_SCANNER_TYPE == "1")) {
354 $fileUploadImpl->register(new ilVirusScannerPreProcessor(ilVirusScannerFactory::_getInstance()));
355 }
356
357 $fileUploadImpl->register(new FilenameSanitizerPreProcessor());
358 $fileUploadImpl->register(
360 $c->fileServiceSettings(),
361 $c->language()->txt("msg_info_blacklisted")
362 )
363 );
364 $fileUploadImpl->register(new InsecureFilenameSanitizerPreProcessor());
365 $fileUploadImpl->register(new SVGBlacklistPreProcessor(
366 $c->language()->txt("upload_svg_rejection_message"),
367 $c->language()->txt("upload_svg_rejection_message_script"),
368 $c->language()->txt("upload_svg_rejection_message_base64"),
369 $c->language()->txt("upload_svg_rejection_message_elements")
370 ));
371
372 return $fileUploadImpl;
373 };
374 }
$dic
Definition: result.php:32

References $c, $dic, and ilVirusScannerFactory\_getInstance().

+ 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

Reimplemented in XapiProxy\ilInitialisation.

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

1164 : void {
1165 global $DIC;
1166
1167 if ($destroy_existing) {
1168 if (isset($GLOBALS[$a_name])) {
1169 unset($GLOBALS[$a_name]);
1170 }
1171 if (isset($DIC[$a_name])) {
1172 unset($DIC[$a_name]);
1173 }
1174 }
1175
1176 $GLOBALS[$a_name] = is_object($a_class) ? $a_class : new $a_class();
1177
1178 $DIC[$a_name] = static function (Container $c) use ($a_name) {
1179 return $GLOBALS[$a_name];
1180 };
1181 }

References $DIC, and $GLOBALS.

Referenced by initAccessHandling(), initClientIniFile(), initDatabase(), initIliasIniFile(), initLog(), initSettings(), initStyle(), and requireCommonIncludes().

+ Here is the caller graph for this function:

◆ initGlobalScreen()

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

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

1569 : void
1570 {
1571 $c['global_screen'] = function () use ($c) {
1572 return new Services(
1574 $c->ui(),
1575 htmlentities(str_replace([" ", ".", "-"], "_", ILIAS_VERSION_NUMERIC))
1576 );
1577 };
1578 $c->globalScreen()->tool()->context()->stack()->clear();
1579 $c->globalScreen()->tool()->context()->claim()->main();
1580 }
Class ilGSProviderFactory.

References $c, and ILIAS_VERSION_NUMERIC.

◆ initHTML()

static ilInitialisation::initHTML ( )
staticprotected

init HTML output (level 3)

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

1652 : void
1653 {
1654 global $ilUser, $DIC;
1655
1656 if (ilContext::hasUser()) {
1657 // load style definitions
1658 // use the init function with plugin hook here, too
1660 }
1661
1663 $tpl = new ilGlobalPageTemplate($DIC->globalScreen(), $DIC->ui(), $DIC->http());
1664 self::initGlobal("tpl", $tpl);
1665
1666 if (ilContext::hasUser()) {
1667 $dispatcher = new \ILIAS\Init\StartupSequence\StartUpSequenceDispatcher($DIC);
1668 $dispatcher->dispatch();
1669 }
1670
1672 "ilNavigationHistory",
1673 "ilNavigationHistory",
1674 "Services/Navigation/classes/class.ilNavigationHistory.php"
1675 );
1676
1678 "ilHelp",
1679 "ilHelpGUI",
1680 "Services/Help/classes/class.ilHelpGUI.php"
1681 );
1682
1684 "ilToolbar",
1685 "ilToolbarGUI",
1686 "./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php"
1687 );
1688
1690 "ilLocator",
1691 "ilLocatorGUI",
1692 "./Services/Locator/classes/class.ilLocatorGUI.php"
1693 );
1694
1696 "ilTabs",
1697 "ilTabsGUI",
1698 "./Services/UIComponent/Tabs/classes/class.ilTabsGUI.php"
1699 );
1700
1701 if (ilContext::hasUser()) {
1702
1703 // set hits per page for all lists using table module
1704 $_GET['limit'] = (int) $ilUser->getPref('hits_per_page');
1705 ilSession::set('tbl_limit', $_GET['limit']);
1706
1707 // the next line makes it impossible to save the offset somehow in a session for
1708 // a specific table (I tried it for the user administration).
1709 // its not posssible to distinguish whether it has been set to page 1 (=offset = 0)
1710 // or not set at all (then we want the last offset, e.g. being used from a session var).
1711 // So I added the wrapping if statement. Seems to work (hopefully).
1712 // Alex April 14th 2006
1713 if (isset($_GET['offset']) && $_GET['offset'] != "") { // added April 14th 2006
1714 $_GET['offset'] = (int) $_GET['offset']; // old code
1715 }
1716
1717 self::initGlobal("lti", "ilLTIViewGUI", "./Services/LTI/classes/class.ilLTIViewGUI.php");
1718 $GLOBALS["DIC"]["lti"]->init();
1720 }
1721 }
static hasUser()
Based on user authentication?
static initUIFramework(\ILIAS\DI\Container $c)
init the ILIAS UI framework.
static initKioskMode(\ILIAS\DI\Container $c)
static initStyle()
provide $styleDefinition object
static set(string $a_var, $a_val)
Set a value.
$ilUser
Definition: imgupload.php:34
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41

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

+ 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 1560 of file class.ilInitialisation.php.

1560 : void
1561 {
1562 $init_http = new InitHttpServices();
1563 $init_http->init($container);
1564 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References $container.

◆ initILIAS()

static ilInitialisation::initILIAS ( )
static

ilias initialisation

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

1225 : void
1226 {
1227 if (self::$already_initialized) {
1228 return;
1229 }
1230
1231 $GLOBALS["DIC"] = new Container();
1232 $GLOBALS["DIC"]["ilLoggerFactory"] = function ($c) {
1234 };
1235
1236 self::$already_initialized = true;
1237
1240 if (ilContext::initClient()) {
1244
1245 if (ilContext::hasUser()) {
1247
1250 }
1251 }
1252
1253 // init after Auth otherwise breaks CAS
1255
1256 // language may depend on user setting
1257 self::initLanguage(true);
1258 $GLOBALS['DIC']['tree']->initLangCode();
1259
1263
1264 if (ilContext::hasHTML()) {
1266 }
1267 }
1268
1269 // this MUST happen after everything else is initialized,
1270 // because this leads to rather unexpected behaviour which
1271 // is super hard to track down to this.
1272 self::replaceSuperGlobals($GLOBALS['DIC']);
1273 }
static supportsPersistentSessions()
Check if context supports persistent session handling.
static initClient()
Init client.
static initHTTPServices(\ILIAS\DI\Container $container)
static initSession()
Init auth session.
static initClient()
Init client-based objects (level 1)
static initCore()
Init core objects (level 0)
static includePhp5Compliance()
This is a hack for authentication.
static initFileUploadService(\ILIAS\DI\Container $dic)
Initializes the file upload service.
static initHTML()
init HTML output (level 3)
static resumeUserSession()
Resume an existing user session.
static initUser()
Init user / authentification (level 2)
static initBackgroundTasks(\ILIAS\DI\Container $c)
static initInjector(\ILIAS\DI\Container $c)

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

Referenced by ilSoapFunctions\__call(), ILIAS\GlobalScreen\Client\CallbackHandler\__construct(), ILIAS\GlobalScreen\Client\ModeToggle\__construct(), ILIAS\GlobalScreen\Client\ItemState\__construct(), ilNusoapUserAdministrationAdapter\handleSoapPlugins(), ilCalendarRemoteAccessHandler\initIlias(), ilWebAccessChecker\initILIAS(), XapiProxy\DataService\initIlias(), ilObjCloudModuleMigration\prepare(), ILIAS\GlobalScreen\Client\ContentRenderer\run(), and ilFixMissingQuestionDuplicationMigration\step().

+ 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.

Reimplemented in XapiProxy\ilInitialisation.

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

139 : void
140 {
141 $ilIliasIniFile = new ilIniFile("./ilias.ini.php");
142 $ilIliasIniFile->read();
143 self::initGlobal('ilIliasIniFile', $ilIliasIniFile);
144
145 // initialize constants
146 if (!defined('ILIAS_DATA_DIR')) {
147 define("ILIAS_DATA_DIR", $ilIliasIniFile->readVariable("clients", "datadir"));
148 }
149 if (!defined('ILIAS_WEB_DIR')) {
150 define("ILIAS_WEB_DIR", $ilIliasIniFile->readVariable("clients", "path"));
151 }
152 if (!defined("ILIAS_ABSOLUTE_PATH")) {
153 define("ILIAS_ABSOLUTE_PATH", $ilIliasIniFile->readVariable('server', 'absolute_path'));
154 }
155
156 // logging
157 define("ILIAS_LOG_DIR", $ilIliasIniFile->readVariable("log", "path"));
158 define("ILIAS_LOG_FILE", $ilIliasIniFile->readVariable("log", "file"));
159 if (!defined("ILIAS_LOG_ENABLED")) {
160 define("ILIAS_LOG_ENABLED", $ilIliasIniFile->readVariable("log", "enabled"));
161 }
162 define("ILIAS_LOG_LEVEL", $ilIliasIniFile->readVariable("log", "level"));
163
164 // read path + command for third party tools from ilias.ini
165 define("PATH_TO_CONVERT", $ilIliasIniFile->readVariable("tools", "convert"));
166 define("PATH_TO_FFMPEG", $ilIliasIniFile->readVariable("tools", "ffmpeg"));
167 define("PATH_TO_ZIP", $ilIliasIniFile->readVariable("tools", "zip"));
168 define("PATH_TO_MKISOFS", $ilIliasIniFile->readVariable("tools", "mkisofs"));
169 define("PATH_TO_UNZIP", $ilIliasIniFile->readVariable("tools", "unzip"));
170 define("PATH_TO_GHOSTSCRIPT", $ilIliasIniFile->readVariable("tools", "ghostscript"));
171 define("PATH_TO_JAVA", $ilIliasIniFile->readVariable("tools", "java"));
172 define("URL_TO_LATEX", $ilIliasIniFile->readVariable("tools", "latex"));
173 define("PATH_TO_FOP", $ilIliasIniFile->readVariable("tools", "fop"));
174 define("PATH_TO_LESSC", $ilIliasIniFile->readVariable("tools", "lessc"));
175 define("PATH_TO_PHANTOMJS", $ilIliasIniFile->readVariable("tools", "phantomjs"));
176
177 if ($ilIliasIniFile->groupExists('error')) {
178 if ($ilIliasIniFile->variableExists('error', 'editor_url')) {
179 define("ERROR_EDITOR_URL", $ilIliasIniFile->readVariable('error', 'editor_url'));
180 }
181
182 if ($ilIliasIniFile->variableExists('error', 'editor_path_translations')) {
183 define(
184 "ERROR_EDITOR_PATH_TRANSLATIONS",
185 $ilIliasIniFile->readVariable('error', 'editor_path_translations')
186 );
187 }
188 }
189
190 // read virus scanner settings
191 switch ($ilIliasIniFile->readVariable("tools", "vscantype")) {
192 case "sophos":
193 define("IL_VIRUS_SCANNER", "Sophos");
194 define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
195 define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
196 break;
197
198 case "antivir":
199 define("IL_VIRUS_SCANNER", "AntiVir");
200 define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
201 define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
202 break;
203
204 case "clamav":
205 define("IL_VIRUS_SCANNER", "ClamAV");
206 define("IL_VIRUS_SCAN_COMMAND", $ilIliasIniFile->readVariable("tools", "scancommand"));
207 define("IL_VIRUS_CLEAN_COMMAND", $ilIliasIniFile->readVariable("tools", "cleancommand"));
208 break;
209 case "icap":
210 define("IL_VIRUS_SCANNER", "icap");
211 define("IL_ICAP_HOST", $ilIliasIniFile->readVariable("tools", "icap_host"));
212 define("IL_ICAP_PORT", $ilIliasIniFile->readVariable("tools", "icap_port"));
213 define("IL_ICAP_AV_COMMAND", $ilIliasIniFile->readVariable("tools", "icap_service_name"));
214 define("IL_ICAP_CLIENT", $ilIliasIniFile->readVariable("tools", "icap_client_path"));
215 break;
216
217 default:
218 define("IL_VIRUS_SCANNER", "None");
219 define("IL_VIRUS_CLEAN_COMMAND", '');
220 break;
221 }
222
224 define("IL_TIMEZONE", $tz);
225 }
static initDefaultTimeZone(ilIniFile $ini)
Initialize default timezone from system settings.

References $ilIliasIniFile, ilTimeZone\initDefaultTimeZone(), and initGlobal().

+ Here is the call graph for this function:

◆ initInjector()

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

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

1999 : void
2000 {
2001 $c["di.dependency_map"] = function ($c) {
2002 return new \ILIAS\BackgroundTasks\Dependencies\DependencyMap\BaseDependencyMap();
2003 };
2004
2005 $c["di.injector"] = function ($c) {
2006 return new \ILIAS\BackgroundTasks\Dependencies\Injector($c, $c["di.dependency_map"]);
2007 };
2008 }

References $c.

◆ initKioskMode()

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

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

2010 : void
2011 {
2012 $c["service.kiosk_mode"] = function ($c) {
2013 return new ilKioskModeService(
2014 $c['ilCtrl'],
2015 $c['lng'],
2016 $c['ilAccess'],
2017 $c['objDefinition']
2018 );
2019 };
2020 }
Central entry point for users of the service.

References $c.

◆ initLocale()

static ilInitialisation::initLocale ( )
staticprotected

Init Locale.

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

964 : void
965 {
966 global $ilSetting;
967
968 if (trim($ilSetting->get("locale", '')) != "") {
969 $larr = explode(",", trim($ilSetting->get("locale")));
970 $ls = array();
971 $first = $larr[0];
972 foreach ($larr as $l) {
973 if (trim($l) != "") {
974 $ls[] = $l;
975 }
976 }
977 if (count($ls) > 0) {
978 setlocale(LC_ALL, $ls);
979
980 // #15347 - making sure that floats are not changed
981 setlocale(LC_NUMERIC, "C");
982 }
983 }
984 }
global $ilSetting
Definition: privfeed.php:17

References $ilSetting.

◆ initLog()

static ilInitialisation::initLog ( )
staticprotected

Init log instance.

Reimplemented in XapiProxy\ilInitialisation.

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

1147 : void
1148 {
1150
1151 self::initGlobal("ilLog", $log);
1152 // deprecated
1153 self::initGlobal("log", $log);
1154 }
static getRootLogger()
The unique root logger has a fixed error level.
$log
Definition: result.php:33

References $log, ilLoggerFactory\getRootLogger(), and initGlobal().

+ Here is the call graph for this function:

◆ initMail()

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

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

752 : void
753 {
754 $c["mail.mime.transport.factory"] = static function (\ILIAS\DI\Container $c) {
755 return new \ilMailMimeTransportFactory($c->settings(), $c->event());
756 };
757 $c["mail.mime.sender.factory"] = static function (\ILIAS\DI\Container $c) {
758 return new \ilMailMimeSenderFactory($c->settings());
759 };
760 $c["mail.texttemplates.service"] = static function (\ILIAS\DI\Container $c) {
761 return new \ilMailTemplateService(new \ilMailTemplateRepository($c->database()));
762 };
763 }
Class ilMailTemplateRepository.

References $c.

◆ initRefinery()

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

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

1610 : void
1611 {
1612 $container['refinery'] = function ($container) {
1613 $dataFactory = new \ILIAS\Data\Factory();
1614 $language = $container['lng'];
1615
1616 return new \ILIAS\Refinery\Factory($dataFactory, $language);
1617 };
1618 }

References $container.

◆ initResourceStorage()

static ilInitialisation::initResourceStorage ( )
staticprotected

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

227 : void
228 {
229 global $DIC;
230 (new InitResourceStorage())->init($DIC);
231 }
Responsible for loading the Resource Storage into the dependency injection container of ILIAS.

References $DIC.

◆ initSession()

static ilInitialisation::initSession ( )
staticprotected

Init auth session.

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

1278 : void
1279 {
1280 if (isset($GLOBALS['DIC']['ilAuthSession'])) {
1281 unset($GLOBALS['DIC']['ilAuthSession']);
1282 }
1283
1284 $GLOBALS['DIC']['ilAuthSession'] = static function (Container $c): ilAuthSession {
1285 $auth_session = ilAuthSession::getInstance(
1286 $c['ilLoggerFactory']->getLogger('auth')
1287 );
1288 $auth_session->init();
1289 return $auth_session;
1290 };
1291 }
static getInstance(\ilLogger $logger)
Get instance.

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

+ 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 870 of file class.ilInitialisation.php.

870 : void
871 {
872 global $ilSetting;
873
875 "ilSetting",
876 "ilSetting",
877 "Services/Administration/classes/class.ilSetting.php"
878 );
879
880 // check correct setup
881 if (!$ilSetting->get("setup_ok")) {
882 self::abortAndDie("Setup is not completed. Please run setup routine again.");
883 }
884
885 // set anonymous user & role id and system role id
886 define("ANONYMOUS_USER_ID", (int) $ilSetting->get("anonymous_user_id"));
887 define("ANONYMOUS_ROLE_ID", (int) $ilSetting->get("anonymous_role_id"));
888 define("SYSTEM_USER_ID", (int) $ilSetting->get("system_user_id"));
889 define("SYSTEM_ROLE_ID", (int) $ilSetting->get("system_role_id"));
890 define("USER_FOLDER_ID", 7);
891
892 // recovery folder
893 define("RECOVERY_FOLDER_ID", (int) $ilSetting->get("recovery_folder_id"));
894
895 // installation id
896 define("IL_INST_ID", $ilSetting->get("inst_id", '0'));
897
898 // define default suffix replacements
899 define("SUFFIX_REPL_DEFAULT", "php,php3,php4,inc,lang,phtml,htaccess");
900 define("SUFFIX_REPL_ADDITIONAL", $ilSetting->get("suffix_repl_additional", ""));
901
902 if (ilContext::usesHTTP()) {
904 }
905 }
static buildHTTPPath()
builds http path

References $ilSetting, abortAndDie(), buildHTTPPath(), initGlobal(), and ilContext\usesHTTP().

+ Here is the call graph for this function:

◆ initStyle()

static ilInitialisation::initStyle ( )
staticprotected

provide $styleDefinition object

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

910 : void
911 {
912 global $DIC;
913 $component_factory = $DIC["component.factory"];
914
915 // load style definitions
917 "styleDefinition",
918 "ilStyleDefinition",
919 "./Services/Style/System/classes/class.ilStyleDefinition.php"
920 );
921
922 // add user interface hook for style initialisation
923 foreach ($component_factory->getActivePluginsInSlot("uihk") as $ui_plugin) {
924 $gui_class = $ui_plugin->getUIClassInstance();
925 $gui_class->modifyGUI("Services/Init", "init_style", array("styleDefinition" => $DIC->systemStyle()));
926 }
927 }

References $DIC, and initGlobal().

+ Here is the call graph for this function:

◆ initTermsOfService()

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

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

809 : void
810 {
811 $c['tos.criteria.type.factory'] = function (
815 $c->rbac()->review(),
816 $c['ilObjDataCache'],
818 );
819 };
820
821 $c['tos.service'] = function (\ILIAS\DI\Container $c): ilTermsOfServiceHelper {
822 $persistence = new ilTermsOfServiceDataGatewayFactory();
823 $persistence->setDatabaseAdapter($c->database());
824 return new ilTermsOfServiceHelper(
825 $persistence,
826 $c['tos.document.evaluator'],
827 $c['tos.criteria.type.factory'],
829 );
830 };
831
832 $c['tos.document.evaluator'] = function (\ILIAS\DI\Container $c): ilTermsOfServiceDocumentEvaluation {
835 $c['tos.criteria.type.factory'],
836 $c->user(),
837 $c->logger()->tos()
838 ),
839 $c->user(),
840 $c->logger()->tos(),
841 ilTermsOfServiceDocument::orderBy('sorting')->get()
842 );
843 };
844 }
static getCountryCodes()
Get country codes (DIN EN 3166-1)
Class ilObjTermsOfService.
Class ilTermsOfServiceHelper.
Interface ilTermsOfServiceDocumentEvaluation.

References $c, ilCountry\getCountryCodes(), and ActiveRecord\orderBy().

+ Here is the call graph for this function:

◆ initUIFramework()

static ilInitialisation::initUIFramework ( \ILIAS\DI\Container  $c)
static

init the ILIAS UI framework.

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

1585 : void
1586 {
1587 $init_ui = new InitUIFramework();
1588 $init_ui->init($c);
1589
1590 $component_repository = $c["component.repository"];
1591 $component_factory = $c["component.factory"];
1592 foreach ($component_repository->getPlugins() as $pl) {
1593 if (!$pl->isActive()) {
1594 continue;
1595 }
1596 $plugin = $component_factory->getPlugin($pl->getId());
1597 $c['ui.renderer'] = $plugin->exchangeUIRendererAfterInitialization($c);
1598
1599 foreach ($c->keys() as $key) {
1600 if (strpos($key, "ui.factory") === 0) {
1601 $c[$key] = $plugin->exchangeUIFactoryAfterInitialization($key, $c);
1602 }
1603 }
1604 }
1605 }
Responsible for loading the UI Framework into the dependency injection container of ILIAS.
string $key
Consumer key/client ID value.
Definition: System.php:193

References $c, ILIAS\LTI\ToolProvider\$key, and XapiProxy\$plugin.

◆ initUser()

static ilInitialisation::initUser ( )
staticprotected

Init user / authentification (level 2)

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

1451 : void
1452 {
1453 global $ilias, $ilUser;
1454
1455 // $ilUser
1457 "ilUser",
1458 "ilObjUser",
1459 "./Services/User/classes/class.ilObjUser.php",
1460 true
1461 );
1462 $ilias->account = $ilUser;
1463
1465 }
static initAccessHandling()
$ilAccess and $rbac... initialisation

References $ilUser.

◆ initUserAccount()

static ilInitialisation::initUserAccount ( )
static

Init user with current account id.

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

932 : void
933 {
934 global $DIC;
935
936 static $context_init;
937
938 $uid = $GLOBALS['DIC']['ilAuthSession']->getUserId();
939 if ($uid) {
940 $DIC->user()->setId($uid);
941 $DIC->user()->read();
942 if (!isset($context_init)) {
943 if ($DIC->user()->isAnonymous()) {
944 $DIC->globalScreen()->tool()->context()->claim()->external();
945 } else {
946 $DIC->globalScreen()->tool()->context()->claim()->internal();
947 }
948 $context_init = true;
949 }
950 // init console log handler
951 ilLoggerFactory::getInstance()->initUser($DIC->user()->getLogin());
953 } else {
954 if (is_object($GLOBALS['ilLog'])) {
955 $GLOBALS['ilLog']->logStack();
956 }
957 self::abortAndDie("Init user account failed");
958 }
959 }
static updateAccess(ilObjUser $user)

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

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

+ 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 89 of file class.ilInitialisation.php.

90 {
91 if (is_array($var)) {
92 $mod = [];
93 foreach ($var as $k => $v) {
96 }
97 return $mod;
98 }
99 return strip_tags(
100 str_replace(
101 array("\x00", "\n", "\r", "\\", "'", '"', "\x1a"),
102 "",
103 $var
104 )
105 );
106 }
static recursivelyRemoveUnsafeCharacters($var)

References recursivelyRemoveUnsafeCharacters().

Referenced by recursivelyRemoveUnsafeCharacters(), and removeUnsafeCharacters().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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 1878 of file class.ilInitialisation.php.

1882 : void {
1883 // #12739
1884 if (defined("ILIAS_HTTP_PATH") &&
1885 !stristr($a_target, ILIAS_HTTP_PATH)) {
1886 $a_target = ILIAS_HTTP_PATH . "/" . $a_target;
1887 }
1888
1889 foreach (['ext_uid', 'soap_pw'] as $param) {
1890 if (false === strpos(
1891 $a_target,
1892 $param . '='
1893 ) && isset($GLOBALS['DIC']->http()->request()->getQueryParams()[$param])) {
1894 $a_target = \ilUtil::appendUrlParameterString($a_target, $param . '=' . \ilUtil::stripSlashes(
1895 $GLOBALS['DIC']->http()->request()->getQueryParams()[$param]
1896 ));
1897 }
1898 }
1899
1901 ilUtil::redirect($a_target);
1902 } else {
1903 $message = self::translateMessage($a_message_id, $a_message_static);
1904
1905 // user-directed linked message
1907 $link = self::translateMessage(
1908 "init_error_redirect_click",
1909 array("en" => 'Please click to continue.',
1910 "de" => 'Bitte klicken um fortzufahren.'
1911 )
1912 );
1913 $mess = $message .
1914 '<br /><a href="' . $a_target . '">' . $link . '</a>';
1915 } // plain text
1916 else {
1917 // not much we can do here
1918 $mess = $message;
1919
1920 if (!trim($mess)) {
1921 $mess = self::translateMessage(
1922 "init_error_redirect_info",
1923 array("en" => 'Redirect not supported by context.',
1924 "de" => 'Weiterleitungen werden durch Kontext nicht unterstützt.'
1925 )
1926 ) .
1927 ' (' . $a_target . ')';
1928 }
1929 }
1930
1931 self::abortAndDie($mess);
1932 }
1933 }
static supportsRedirects()
Are redirects supported?
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static appendUrlParameterString(string $a_url, string $a_par, bool $xml_style=false)
static redirect(string $a_script)
static http()
Fetches the global http state from ILIAS.
$message
Definition: xapiexit.php:32
$param
Definition: xapitoken.php:46

Referenced by goToLogin(), goToPublicSection(), handleMaintenanceMode(), and initClientIniFile().

+ Here is the caller graph for this function:

◆ redirectToStartingPage()

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

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

1935 : void
1936 {
1937 global $DIC;
1938
1939 // fallback, should never happen
1940 if ($DIC->user()->getId() === ANONYMOUS_USER_ID) {
1942 return;
1943 }
1944
1945 if (
1946 $target === '' &&
1947 $DIC->http()->wrapper()->query()->has('target')
1948 ) {
1949 $target = $DIC->http()->wrapper()->query()->retrieve(
1950 'target',
1951 $DIC->refinery()->kindlyTo()->string()
1952 );
1953 }
1954
1955 // for password change and incomplete profile
1956 // see ilDashboardGUI
1957 if ($target === '') {
1958 ilLoggerFactory::getLogger('init')->debug('Redirect to default starting page');
1959 $DIC->ctrl()->redirectToURL(ilUserUtil::getStartingPointAsUrl());
1960 } else {
1961 ilLoggerFactory::getLogger('init')->debug('Redirect to target: ' . $target);
1962 $DIC->ctrl()->redirectToURL("goto.php?target=" . $target);
1963 }
1964 }

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

Referenced by ilPersonalProfileGUI\cancelWithdrawal(), ilStartUpGUI\doApacheAuthentication(), ilStartUpGUI\doCasAuthentication(), ilStartUpGUI\doLTIAuthentication(), ilStartUpGUI\doMigration(), ilStartUpGUI\doMigrationNewAccount(), ilStartUpGUI\doOpenIdConnectAuthentication(), ilStartUpGUI\doSamlAuthentication(), ilStartUpGUI\doShibbolethAuthentication(), ilStartUpGUI\doStandardAuthentication(), ilStartUpGUI\processIndexPHP(), and ilAuthFrontendCredentialsSoap\tryAuthenticationOnLoginPage().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reinitILIAS()

static ilInitialisation::reinitILIAS ( )
static

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

1204 : void
1205 {
1206 self::$already_initialized = false;
1208 }
static initILIAS()
ilias initialisation

Referenced by ilSoapAdministration\initIlias().

+ Here is the caller graph for this function:

◆ reInitUser()

static ilInitialisation::reInitUser ( )
static

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

1210 : void
1211 {
1215
1218 }
1219 }
1220 }

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

Referenced by ilSoapAdministration\reInitUser().

+ 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 76 of file class.ilInitialisation.php.

76 : void
77 {
78 // Remove unsafe characters from GET parameters.
79 // We do not need this characters in any case, so it is
80 // feasible to filter them everytime. POST parameters
81 // need attention through ilUtil::stripSlashes() and similar functions)
83 }

References $_GET, and recursivelyRemoveUnsafeCharacters().

+ Here is the call graph for this function:

◆ requireCommonIncludes()

static ilInitialisation::requireCommonIncludes ( )
staticprotected

get common include code files

@noRector

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

111 : void
112 {
114 require_once "include/inc.ilias_version.php";
115
116 self::initGlobal("ilBench", "ilBenchmark", "./Services/Utilities/classes/class.ilBenchmark.php");
117 }

References initGlobal().

+ Here is the call graph for this function:

◆ resumeUserSession()

static ilInitialisation::resumeUserSession ( )
static

Resume an existing user session.

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

1470 : void
1471 {
1472 global $DIC;
1473
1476 }
1477
1478 if (
1479 !$DIC['ilAuthSession']->isAuthenticated() or
1480 $DIC['ilAuthSession']->isExpired()
1481 ) {
1482 if ($GLOBALS['DIC']['ilAuthSession']->isExpired()) {
1484 }
1485 ilLoggerFactory::getLogger('init')->debug('Current session is invalid: ' . $GLOBALS['DIC']['ilAuthSession']->getId());
1486 $current_script = substr(strrchr($_SERVER["PHP_SELF"], "/"), 1);
1487 if (self::blockedAuthentication($current_script)) {
1488 ilLoggerFactory::getLogger('init')->debug('Authentication is started in current script.');
1489 // nothing todo: authentication is done in current script
1490 return;
1491 }
1492
1494 return;
1495 }
1496 // valid session
1497
1499 }
static isAuthenticationForced()
Check if authentication is should be forced.
static handleForcedAuthentication()
static _destroy($a_session_id, ?int $a_closing_context=null, $a_expired_at=null)
Destroy session.
$_COOKIE[session_name()]
Definition: xapitoken.php:54

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

+ Here is the call graph for this function:

◆ setClientIdCookie()

static ilInitialisation::setClientIdCookie ( )
staticprivate

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

710 : void
711 {
712 if (defined('CLIENT_ID') &&
713 !defined('IL_PHPUNIT_TEST') &&
715 ilUtil::setCookie('ilClientId', CLIENT_ID);
716 }
717 }
static setCookie(string $a_cookie_name, string $a_cookie_value='', bool $a_also_set_super_global=true, bool $a_set_cookie_invalid=false)

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

+ Here is the call graph for this function:

◆ setCookieConstants()

static ilInitialisation::setCookieConstants ( )
staticprotected

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

679 : void
680 {
682 $cookie_path = '/';
683 } elseif (isset($GLOBALS['COOKIE_PATH'])) {
684 // use a predefined cookie path from WebAccessChecker
685 $cookie_path = $GLOBALS['COOKIE_PATH'];
686 } else {
687 $cookie_path = dirname($_SERVER['PHP_SELF']);
688 }
689
690 /* if ilias is called directly within the docroot $cookie_path
691 is set to '/' expecting on servers running under windows..
692 here it is set to '\'.
693 in both cases a further '/' won't be appended due to the following regex
694 */
695 $cookie_path .= (!preg_match("/[\/|\\\\]$/", $cookie_path)) ? "/" : "";
696
697 if ($cookie_path == "\\") {
698 $cookie_path = '/';
699 }
700
701 define('IL_COOKIE_HTTPONLY', true); // Default Value
702 define('IL_COOKIE_EXPIRE', 0);
703 define('IL_COOKIE_DOMAIN', '');
704 if (!defined('IL_COOKIE_PATH')) {
705 // Might be already defined by ./sso/index.php or other scripts (like those in ./Services/SAML/lib/*)
706 define('IL_COOKIE_PATH', $cookie_path);
707 }
708 }
const CONTEXT_HTTP
HTTP Auth used for WebDAV and CalDAV If a special handling for WebDAV or CalDAV is required overwrite...
$cookie_path
Definition: metadata.php:39

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

+ Here is the call graph for this function:

◆ setSessionCookieParams()

static ilInitialisation::setSessionCookieParams ( )
staticprotected

set session cookie params

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

722 : void
723 {
724 global $ilSetting, $DIC;
725
726 if (!defined('IL_COOKIE_SECURE')) {
727 // If this code is executed, we can assume that \ilHTTPS::enableSecureCookies was NOT called before
728 // \ilHTTPS::enableSecureCookies already executes session_set_cookie_params()
729
730 $cookie_secure = !$ilSetting->get('https', '0') && $DIC['https']->isDetected();
731 define('IL_COOKIE_SECURE', $cookie_secure); // Default Value
732
733 $cookie_parameters = [
734 'lifetime' => IL_COOKIE_EXPIRE,
735 'path' => IL_COOKIE_PATH,
736 'domain' => IL_COOKIE_DOMAIN,
737 'secure' => IL_COOKIE_SECURE,
738 'httponly' => IL_COOKIE_HTTPONLY,
739 ];
740
741 if (
742 $cookie_secure &&
743 (!isset(session_get_cookie_params()['samesite']) || strtolower(session_get_cookie_params()['samesite']) !== 'strict')
744 ) {
745 $cookie_parameters['samesite'] = 'Lax';
746 }
747
748 session_set_cookie_params($cookie_parameters);
749 }
750 }
const IL_COOKIE_PATH(isset($_GET["client_id"]))
Definition: metadata.php:64

References $DIC, $ilSetting, and IL_COOKIE_PATH.

◆ setSessionHandler()

static ilInitialisation::setSessionHandler ( )
static

set session handler to db Used in Soap/CAS

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

660 : void
661 {
662 $db_session_handler = new ilSessionDBHandler();
663 if (!$db_session_handler->setSaveHandler()) {
664 self::abortAndDie("Cannot start session handling.");
665 }
666
667 // Do not accept external session ids
668 if (!ilSession::_exists(session_id()) && !defined('IL_PHPUNIT_TEST')) {
669 // php7-todo, correct-with-php5-removal : alex, 1.3.2016: added if, please check
670 if (function_exists("session_status") && session_status() == PHP_SESSION_ACTIVE) {
671 session_regenerate_id();
672 }
673 }
674 }
Database Session Handling.
static _exists(string $a_session_id)
Check whether session exists.

References ilSession\_exists(), and abortAndDie().

+ 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 1838 of file class.ilInitialisation.php.

1838 : string
1839 {
1840 global $ilDB, $lng, $ilSetting, $ilClientIniFile, $ilUser;
1841
1842 // current language
1843 if (!$lng) {
1844 $lang = "en";
1845 if ($ilUser) {
1846 $lang = $ilUser->getLanguage();
1847 } elseif (isset($_REQUEST["lang"])) {
1848 $lang = (string) $_REQUEST["lang"];
1849 } elseif ($ilSetting) {
1850 $lang = $ilSetting->get("language", '');
1851 } elseif ($ilClientIniFile) {
1852 $lang = $ilClientIniFile->readVariable("language", "default");
1853 }
1854 } else {
1855 $lang = $lng->getLangKey();
1856 }
1857
1858 $message = "";
1859 if ($ilDB && $a_message_id) {
1860 if (!$lng) {
1861 $lng = new ilLanguage($lang);
1862 }
1863
1864 $lng->loadLanguageModule("init");
1865 $message = $lng->txt($a_message_id);
1866 } elseif (is_array($a_message_static)) {
1867 if (!isset($a_message_static[$lang])) {
1868 $lang = "en";
1869 }
1870 $message = $a_message_static[$lang];
1871 }
1872 return $message;
1873 }
language handling
$lng
$lang
Definition: xapiexit.php:26

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

Referenced by handleMaintenanceMode().

+ Here is the caller graph for this function:

Field Documentation

◆ $already_initialized

bool ilInitialisation::$already_initialized = false
staticprotected

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


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