12 require_once(
"libs/composer/vendor/autoload.php");
16 $GLOBALS[
'ilGlobalStartTime'] = microtime();
19 include_once
"Services/Context/classes/class.ilContext.php";
47 $_GET = self::recursivelyRemoveUnsafeCharacters(
$_GET);
54 foreach ($var as $k => $v) {
55 $k = self::recursivelyRemoveUnsafeCharacters($k);
56 $mod[$k] = self::recursivelyRemoveUnsafeCharacters($v);
62 array(
"\x00",
"\n",
"\r",
"\\",
"'",
'"',
"\x1a"),
76 require_once
"./Services/UICore/classes/class.ilTemplate.php";
80 require_once
"./Services/Utilities/classes/class.ilUtil.php";
81 require_once
"./Services/Calendar/classes/class.ilDatePresentation.php";
82 require_once
"include/inc.ilias_version.php";
84 include_once
'./Services/Authentication/classes/class.ilAuthUtils.php';
86 self::initGlobal(
"ilBench",
"ilBenchmark",
"./Services/Utilities/classes/class.ilBenchmark.php");
96 include_once
'Services/Authentication/classes/class.ilAuthFactory.php';
98 require_once(
"include/inc.xml5compliance.php");
100 require_once(
"include/inc.xsl5compliance.php");
112 require_once(
"./Services/Init/classes/class.ilIniFile.php");
118 define(
"ILIAS_DATA_DIR",
$ilIliasIniFile->readVariable(
"clients",
"datadir"));
119 define(
"ILIAS_WEB_DIR",
$ilIliasIniFile->readVariable(
"clients",
"path"));
120 define(
"ILIAS_ABSOLUTE_PATH",
$ilIliasIniFile->readVariable(
'server',
'absolute_path'));
124 define(
"ILIAS_LOG_FILE",
$ilIliasIniFile->readVariable(
"log",
"file"));
125 define(
"ILIAS_LOG_ENABLED",
$ilIliasIniFile->readVariable(
"log",
"enabled"));
126 define(
"ILIAS_LOG_LEVEL",
$ilIliasIniFile->readVariable(
"log",
"level"));
127 define(
"SLOW_REQUEST_TIME",
$ilIliasIniFile->readVariable(
"log",
"slow_request_time"));
130 define(
"PATH_TO_CONVERT",
$ilIliasIniFile->readVariable(
"tools",
"convert"));
131 define(
"PATH_TO_FFMPEG",
$ilIliasIniFile->readVariable(
"tools",
"ffmpeg"));
133 define(
"PATH_TO_MKISOFS",
$ilIliasIniFile->readVariable(
"tools",
"mkisofs"));
134 define(
"PATH_TO_UNZIP",
$ilIliasIniFile->readVariable(
"tools",
"unzip"));
135 define(
"PATH_TO_GHOSTSCRIPT",
$ilIliasIniFile->readVariable(
"tools",
"ghostscript"));
136 define(
"PATH_TO_JAVA",
$ilIliasIniFile->readVariable(
"tools",
"java"));
137 define(
"URL_TO_LATEX",
$ilIliasIniFile->readVariable(
"tools",
"latex"));
139 define(
"PATH_TO_LESSC",
$ilIliasIniFile->readVariable(
"tools",
"lessc"));
140 define(
"PATH_TO_PHANTOMJS",
$ilIliasIniFile->readVariable(
"tools",
"phantomjs"));
145 define(
"IL_VIRUS_SCANNER",
"Sophos");
146 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
147 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
151 define(
"IL_VIRUS_SCANNER",
"AntiVir");
152 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
153 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
157 define(
"IL_VIRUS_SCANNER",
"ClamAV");
158 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
159 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
163 define(
"IL_VIRUS_SCANNER",
"None");
167 include_once
'./Services/Calendar/classes/class.ilTimeZone.php';
169 define(
"IL_TIMEZONE",
$tz);
183 public static function bootstrapFilesystems()
187 $DIC[
'filesystem.security.sanitizing.filename'] =
function ($c) {
191 $DIC[
'filesystem.factory'] =
function ($c) {
192 return new \ILIAS\Filesystem\Provider\DelegatingFilesystemFactory($c[
'filesystem.security.sanitizing.filename']);
195 $DIC[
'filesystem.web'] =
function ($c) {
201 $delegatingFactory = $c[
'filesystem.factory'];
202 $webConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' . ILIAS_WEB_DIR .
'/' . CLIENT_ID);
203 return $delegatingFactory->getLocal($webConfiguration);
206 $DIC[
'filesystem.storage'] =
function ($c) {
212 $delegatingFactory = $c[
'filesystem.factory'];
213 $storageConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_DATA_DIR .
'/' . CLIENT_ID);
214 return $delegatingFactory->getLocal($storageConfiguration);
217 $DIC[
'filesystem.temp'] =
function ($c) {
223 $delegatingFactory = $c[
'filesystem.factory'];
224 $tempConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_DATA_DIR .
'/' . CLIENT_ID .
'/temp');
225 return $delegatingFactory->getLocal($tempConfiguration);
228 $DIC[
'filesystem.customizing'] =
function ($c) {
234 $delegatingFactory = $c[
'filesystem.factory'];
235 $customizingConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
'Customizing');
236 return $delegatingFactory->getLocal($customizingConfiguration);
239 $DIC[
'filesystem.libs'] =
function ($c) {
245 $delegatingFactory = $c[
'filesystem.factory'];
246 $customizingConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
'libs');
247 return $delegatingFactory->getLocal($customizingConfiguration,
true);
250 $DIC[
'filesystem'] =
function ($c) {
251 return new \ILIAS\Filesystem\FilesystemsImpl(
252 $c[
'filesystem.storage'],
253 $c[
'filesystem.web'],
254 $c[
'filesystem.temp'],
255 $c[
'filesystem.customizing'],
256 $c[
'filesystem.libs']
272 $dic[
'upload.processor-manager'] =
function ($c) {
273 return new \ILIAS\FileUpload\Processor\PreProcessorManagerImpl();
276 $dic[
'upload'] =
function ($c) {
277 $fileUploadImpl = new \ILIAS\FileUpload\FileUploadImpl($c[
'upload.processor-manager'], $c[
'filesystem'], $c[
'http']);
278 if (IL_VIRUS_SCANNER !=
"None") {
282 return $fileUploadImpl;
291 include_once
'./Services/Http/classes/class.ilHTTPS.php';
294 if (
$https->isDetected()) {
301 $rq_uri = strip_tags(
$_SERVER[
'REQUEST_URI']);
305 if (is_int($pos = strpos($rq_uri,
"?"))) {
306 $rq_uri = substr($rq_uri, 0, $pos);
309 if (!
defined(
'ILIAS_MODULE')) {
310 $path = pathinfo($rq_uri);
311 if (!
$path[
'extension']) {
314 $uri = dirname($rq_uri);
318 $path = dirname($rq_uri);
326 foreach ($dirs as $dir) {
327 $uri = dirname($uri);
345 if (!is_object($ilIliasIniFile)) {
346 self::abortAndDie(
'Fatal Error: ilInitialisation::determineClient called without initialisation of ILIAS ini file object.');
349 if (isset(
$_GET[
'client_id']) && strlen(
$_GET[
'client_id']) > 0) {
351 if (!
defined(
'IL_PHPUNIT_TEST')) {
356 } elseif (!isset(
$_COOKIE[
'ilClientId'])) {
357 ilUtil::setCookie(
'ilClientId', $ilIliasIniFile->readVariable(
'clients',
'default'));
386 if (ILIAS_WEB_DIR ==
"") {
387 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile called without ILIAS_WEB_DIR.");
391 if (CLIENT_ID ==
"") {
392 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile called without CLIENT_ID.");
395 $ini_file =
"./" . ILIAS_WEB_DIR .
"/" . CLIENT_ID .
"/client.ini.php";
398 $ilClientIniFile =
new ilIniFile($ini_file);
399 $ilClientIniFile->read();
402 if ($ilClientIniFile->ERROR !=
"") {
404 $default_client = $ilIliasIniFile->readVariable(
"clients",
"default");
406 if (CLIENT_ID !=
"" && CLIENT_ID != $default_client) {
407 $mess =
array(
"en" =>
"Client does not exist.",
408 "de" =>
"Mandant ist ungültig.");
409 self::redirect(
"index.php?client_id=" . $default_client, null, $mess);
411 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile initializing client ini file abborted with: " . $ilClientIniFile->ERROR);
415 self::initGlobal(
"ilClientIniFile", $ilClientIniFile);
418 define(
"SESSION_REMINDER_LEADTIME", 30);
419 define(
"DEBUG", $ilClientIniFile->readVariable(
"system",
"DEBUG"));
420 define(
"DEVMODE", $ilClientIniFile->readVariable(
"system",
"DEVMODE"));
421 define(
"SHOWNOTICES", $ilClientIniFile->readVariable(
"system",
"SHOWNOTICES"));
422 define(
"DEBUGTOOLS", $ilClientIniFile->readVariable(
"system",
"DEBUGTOOLS"));
423 define(
"ROOT_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'ROOT_FOLDER_ID'));
424 define(
"SYSTEM_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'SYSTEM_FOLDER_ID'));
425 define(
"ROLE_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'ROLE_FOLDER_ID'));
426 define(
"MAIL_SETTINGS_ID", $ilClientIniFile->readVariable(
'system',
'MAIL_SETTINGS_ID'));
427 $error_handler = $ilClientIniFile->readVariable(
'system',
'ERROR_HANDLER');
428 define(
"ERROR_HANDLER", $error_handler ? $error_handler :
"PRETTY_PAGE");
432 define(
"OH_REF_ID", $ilClientIniFile->readVariable(
"system",
"OH_REF_ID"));
434 define(
"SYSTEM_MAIL_ADDRESS", $ilClientIniFile->readVariable(
'system',
'MAIL_SENT_ADDRESS'));
435 define(
"MAIL_REPLY_WARNING", $ilClientIniFile->readVariable(
'system',
'MAIL_REPLY_WARNING'));
441 define(
"CLIENT_DATA_DIR", ILIAS_DATA_DIR .
"/" . CLIENT_ID);
442 define(
"CLIENT_WEB_DIR", ILIAS_ABSOLUTE_PATH .
"/" . ILIAS_WEB_DIR .
"/" . CLIENT_ID);
443 define(
"CLIENT_NAME", $ilClientIniFile->readVariable(
'client',
'name'));
445 $val = $ilClientIniFile->readVariable(
"db",
"type");
447 define(
"IL_DB_TYPE",
"mysql");
449 define(
"IL_DB_TYPE", $val);
453 $ilGlobalCacheSettings->readFromIniFile($ilClientIniFile);
464 global $ilClientIniFile;
466 if (!$ilClientIniFile->readVariable(
"client",
"access")) {
467 $mess =
array(
"en" =>
"The server is not available due to maintenance." .
468 " We apologise for any inconvenience.",
469 "de" =>
"Der Server ist aufgrund von Wartungsarbeiten nicht verfügbar." .
470 " Wir bitten um Verständnis.");
471 $mess_id =
"init_error_maintenance";
474 self::redirect(
"./maintenance.html", $mess_id, $mess);
476 $mess = self::translateMessage($mess_id, $mess);
477 self::abortAndDie($mess);
489 require_once(
"./Services/Database/classes/class.ilDBWrapperFactory.php");
490 $ilDB = ilDBWrapperFactory::getWrapper(IL_DB_TYPE);
491 $ilDB->initFromIniFile();
494 self::initGlobal(
"ilDB",
$ilDB);
504 if (ini_get(
'session.save_handler') !=
'user' && version_compare(PHP_VERSION,
'7.2.0',
'<')) {
505 ini_set(
"session.save_handler",
"user");
508 require_once
"Services/Authentication/classes/class.ilSessionDBHandler.php";
510 if (!$db_session_handler->setSaveHandler()) {
511 self::abortAndDie(
"Please turn off Safe mode OR set session.save_handler to \"user\" in your php.ini");
517 if (function_exists(
"session_status") && session_status() == PHP_SESSION_ACTIVE) {
518 session_regenerate_id();
528 include_once
'Services/Authentication/classes/class.ilAuthFactory.php';
531 } elseif (
$GLOBALS[
'COOKIE_PATH']) {
549 define(
'IL_COOKIE_HTTPONLY',
true);
550 define(
'IL_COOKIE_EXPIRE', 0);
552 define(
'IL_COOKIE_DOMAIN',
'');
562 if (!
defined(
'IL_COOKIE_SECURE')) {
566 include_once
'./Services/Http/classes/class.ilHTTPS.php';
568 define(
'IL_COOKIE_SECURE', $cookie_secure);
570 session_set_cookie_params(
585 $c[
"mail.mime.transport.factory"] =
function ($c) {
586 require_once
'Services/Mail/classes/Mime/Transport/class.ilMailMimeTransportFactory.php';
589 $c[
"mail.mime.sender.factory"] =
function ($c) {
590 require_once
'Services/Mail/classes/Mime/Sender/class.ilMailMimeSenderFactory.php';
600 $c[
"user.avatar.factory"] =
function ($c) {
601 require_once
'Services/User/Avatar/classes/class.ilUserAvatarFactory.php';
618 "Services/Administration/classes/class.ilSetting.php" 622 if (!$ilSetting->get(
"setup_ok")) {
623 self::abortAndDie(
"Setup is not completed. Please run setup routine again.");
627 define(
"ANONYMOUS_USER_ID", $ilSetting->get(
"anonymous_user_id"));
628 define(
"ANONYMOUS_ROLE_ID", $ilSetting->get(
"anonymous_role_id"));
629 define(
"SYSTEM_USER_ID", $ilSetting->get(
"system_user_id"));
630 define(
"SYSTEM_ROLE_ID", $ilSetting->get(
"system_role_id"));
631 define(
"USER_FOLDER_ID", 7);
634 define(
"RECOVERY_FOLDER_ID", $ilSetting->get(
"recovery_folder_id"));
637 define(
"IL_INST_ID", $ilSetting->get(
"inst_id", 0));
640 define(
"SUFFIX_REPL_DEFAULT",
"php,php3,php4,inc,lang,phtml,htaccess");
641 define(
"SUFFIX_REPL_ADDITIONAL", $ilSetting->get(
"suffix_repl_additional"));
644 self::buildHTTPPath();
653 global $styleDefinition, $ilPluginAdmin;
659 "./Services/Style/System/classes/class.ilStyleDefinition.php" 663 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE,
"UIComponent",
"uihk");
664 foreach ($pl_names as $pl) {
666 $gui_class = $ui_plugin->getUIClassInstance();
667 $gui_class->modifyGUI(
"Services/Init",
"init_style",
array(
"styleDefinition" => $styleDefinition));
674 public static function initUserAccount()
681 $uid =
$GLOBALS[
'DIC'][
'ilAuthSession']->getUserId();
683 $ilUser->setId($uid);
687 include_once
'./Services/Logging/classes/public/class.ilLoggerFactory.php';
689 \ilOnlineTracking::updateAccess($ilUser);
694 self::abortAndDie(
"Init user account failed");
705 if (trim($ilSetting->get(
"locale") !=
"")) {
706 $larr = explode(
",", trim($ilSetting->get(
"locale")));
709 foreach ($larr as
$l) {
710 if (trim($l) !=
"") {
714 if (count($ls) > 0) {
715 setlocale(LC_ALL, $ls);
718 setlocale(LC_NUMERIC,
"C");
720 if (class_exists(
"Collator")) {
721 $GLOBALS[
"ilCollator"] =
new Collator($first);
722 $GLOBALS[
"DIC"][
"ilCollator"] =
function ($c) {
739 if (ANONYMOUS_USER_ID ==
"") {
740 self::abortAndDie(
"Public Section enabled, but no Anonymous user found.");
743 $session_destroyed =
false;
744 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
745 $session_destroyed =
true;
748 if (!
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated()) {
749 $session_destroyed =
true;
753 if ($session_destroyed) {
754 $GLOBALS[
'DIC'][
'ilAuthSession']->setAuthenticated(
true, ANONYMOUS_USER_ID);
757 self::initUserAccount();
760 if (strlen(
$_GET[
"target"])) {
762 $current_script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"), 1);
763 if ($current_script ==
"goto.php") {
767 self::redirect(
"goto.php?target=" .
$_GET[
"target"]);
771 #if(!$GLOBALS['DIC']->rbac()->system()->checkAccess('read', ROOT_FOLDER_ID)) 773 # return self::goToLogin(); 777 $_GET[
"ref_id"] = ROOT_FOLDER_ID;
778 $_GET[
"cmd"] =
"frameset";
780 "ilias.php?baseClass=ilrepositorygui&reloadpublic=1&cmd=" .
794 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
797 if (!
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated()) {
801 $script =
"login.php?target=" .
$_GET[
"target"] .
"&client_id=" .
$_COOKIE[
"ilClientId"] .
802 "&auth_stat=" . $a_auth_stat;
806 "init_error_authentication_fail",
808 "en" =>
"Authentication failed.",
809 "de" =>
"Authentifizierung fehlgeschlagen.")
816 protected static function initLanguage($a_use_user_language =
true)
825 require_once
'Services/Language/classes/class.ilLanguage.php';
827 if ($a_use_user_language) {
828 if ($DIC->offsetExists(
'lng')) {
829 $DIC->offsetUnset(
'lng');
831 self::initGlobal(
'lng', ilLanguage::getGlobalInstance());
835 if (is_object($rbacsystem)) {
836 $rbacsystem->initMemberView();
848 "./Services/AccessControl/classes/class.ilRbacReview.php" 851 require_once
"./Services/AccessControl/classes/class.ilRbacSystem.php";
853 self::initGlobal(
"rbacsystem", $rbacsystem);
858 "./Services/AccessControl/classes/class.ilRbacAdmin.php" 864 "./Services/AccessControl/classes/class.ilAccess.php" 867 require_once
"./Services/AccessControl/classes/class.ilConditionHandler.php";
875 include_once
'./Services/Logging/classes/public/class.ilLoggerFactory.php';
878 self::initGlobal(
"ilLog",
$log);
880 self::initGlobal(
"log",
$log);
890 protected static function initGlobal($a_name, $a_class, $a_source_file = null)
894 if ($a_source_file) {
895 include_once $a_source_file;
901 $DIC[$a_name] =
function ($c) use ($a_name) {
914 $GLOBALS[
'ilLog']->write(
"Fatal Error: ilInitialisation - " . $a_message);
924 if (
defined(SHOWNOTICES) && SHOWNOTICES) {
929 error_reporting(E_ALL);
932 if (
defined(
'DEBUGTOOLS') && DEBUGTOOLS) {
933 include_once
"include/inc.debug.php";
942 self::$already_initialized =
false;
951 if (self::$already_initialized) {
961 if (is_object($tpl)) {
964 $tpl->setVariable(
"LOCATION_STYLESHEET", $location_stylesheet);
971 $GLOBALS[
"DIC"] = new \ILIAS\DI\Container();
972 $GLOBALS[
"DIC"][
"ilLoggerFactory"] =
function ($c) {
976 self::$already_initialized =
true;
979 self::initHTTPServices(
$GLOBALS[
"DIC"]);
982 self::initFileUploadService(
$GLOBALS[
"DIC"]);
989 self::resumeUserSession();
994 self::includePhp5Compliance();
997 self::initLanguage(
true);
998 $GLOBALS[
'DIC'][
'tree']->initLangCode();
1000 self::initInjector(
$GLOBALS[
'DIC']);
1001 self::initBackgroundTasks(
$GLOBALS[
'DIC']);
1004 include_once(
'./Services/WebServices/ECS/classes/class.ilECSTaskScheduler.php');
1017 $GLOBALS[
"DIC"][
"ilAuthSession"] =
function ($c) {
1019 $c[
'ilLoggerFactory']->getLogger(
'auth')
1021 $auth_session->init();
1022 return $auth_session;
1033 error_reporting(E_ALL & ~E_NOTICE);
1046 self::handleErrorReporting();
1051 self::requireCommonIncludes();
1058 "./Services/Init/classes/class.ilErrorHandling.php" 1066 include_once
"Services/Authentication/classes/class.ilSession.php";
1071 self::removeUnsafeCharacters();
1073 self::initIliasIniFile();
1075 define(
'IL_INITIAL_WD', getcwd());
1078 self::initGlobal(
"ilias",
"ILIAS",
"./Services/Init/classes/class.ilias.php");
1088 self::setCookieConstants();
1090 self::determineClient();
1092 self::bootstrapFilesystems();
1094 self::initClientIniFile();
1099 $ilias->client_id = CLIENT_ID;
1102 self::handleDevMode();
1106 self::handleMaintenanceMode();
1108 self::initDatabase();
1111 self::initLanguage(
false);
1117 "ilAppEventHandler",
1118 "ilAppEventHandler",
1119 "./Services/EventHandling/classes/class.ilAppEventHandler.php" 1127 if (!isset($DIC[
"ilPluginAdmin"]) || !$DIC[
"ilPluginAdmin"] instanceof
ilPluginAdmin) {
1131 "./Services/Component/classes/class.ilPluginAdmin.php" 1135 self::initSettings();
1136 self::setSessionHandler();
1147 self::initGlobal(
"https",
"ilHTTPS",
"./Services/Http/classes/class.ilHTTPS.php");
1148 $https->enableSecureCookies();
1149 $https->checkPort();
1157 "ilObjectDataCache",
1158 "./Services/Object/classes/class.ilObjectDataCache.php" 1162 require_once
"./Services/Xml/classes/class.ilSaxParser.php";
1166 "ilObjectDefinition",
1167 "./Services/Object/classes/class.ilObjectDefinition.php" 1171 require_once
"./Services/Tree/classes/class.ilTree.php";
1172 $tree =
new ilTree(ROOT_FOLDER_ID);
1173 self::initGlobal(
"tree", $tree);
1179 "./Services/UICore/classes/class.ilCtrl.php" 1182 self::setSessionCookieParams();
1196 "./Services/User/classes/class.ilObjUser.php" 1200 self::initAccessHandling();
1208 include_once
'./Services/Authentication/classes/class.ilAuthUtils.php';
1214 !
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated() or
1215 $GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()
1218 $current_script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"), 1);
1219 if (self::blockedAuthentication($current_script)) {
1224 return self::handleAuthenticationFail();
1227 return self::initUserAccount();
1237 global $ilAuth, $ilias,
$ilErr;
1239 $current_script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"), 1);
1241 if (self::blockedAuthentication($current_script)) {
1245 $oldSid = session_id();
1248 $ilias->setAuthError($ilErr->getLastError());
1250 if ($ilAuth->getAuth() && $ilAuth->getStatus() ==
'') {
1251 self::initUserAccount();
1253 self::handleAuthenticationSuccess();
1255 if (!self::showingLoginForm($current_script)) {
1257 $mandatory_auth = ($current_script !=
"shib_login.php" 1258 && $current_script !=
"shib_logout.php" 1259 && $current_script !=
"saml.php" 1260 && $current_script !=
"error.php" 1261 && $current_script !=
"chat.php" 1262 && $current_script !=
"wac.php" 1263 && $current_script !=
"index.php");
1265 if ($mandatory_auth) {
1266 self::handleAuthenticationFail();
1275 protected static function handleAuthenticationSuccess()
1282 require_once
'Services/Tracking/classes/class.ilOnlineTracking.php';
1283 ilOnlineTracking::updateAccess($ilUser);
1289 protected static function handleAuthenticationFail()
1303 throw new Exception(
"Authentication failed.");
1305 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
1307 return self::goToLogin();
1311 return self::goToPublicSection();
1314 return self::goToLogin();
1322 $container[
'http.request_factory'] =
function ($c) {
1323 return new \ILIAS\HTTP\Request\RequestFactoryImpl();
1326 $container[
'http.response_factory'] =
function ($c) {
1327 return new \ILIAS\HTTP\Response\ResponseFactoryImpl();
1330 $container[
'http.cookie_jar_factory'] =
function ($c) {
1331 return new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl();
1334 $container[
'http.response_sender_strategy'] =
function ($c) {
1335 return new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy();
1338 $container[
'http'] =
function ($c) {
1339 return new \ILIAS\DI\HTTPServices(
1340 $c[
'http.response_sender_strategy'],
1341 $c[
'http.cookie_jar_factory'],
1342 $c[
'http.request_factory'],
1343 $c[
'http.response_factory']
1353 $c[
"ui.factory"] =
function ($c) {
1356 $c[
"ui.renderer"] =
function ($c) {
1358 $c[
"ui.component_renderer_loader"]
1361 $c[
"ui.component_renderer_loader"] =
function ($c) {
1363 new ILIAS\
UI\Implementation\Render\LoaderResourceRegistryWrapper(
1364 $c[
"ui.resource_registry"],
1365 new ILIAS\
UI\Implementation\Render\FSLoader(
1366 new ILIAS\
UI\Implementation\Render\DefaultRendererFactory(
1368 $c[
"ui.template_factory"],
1370 $c[
"ui.javascript_binding"]
1376 $c[
"ui.template_factory"] =
function ($c) {
1381 $c[
"ui.resource_registry"] =
function ($c) {
1384 $c[
"ui.javascript_binding"] =
function ($c) {
1395 require_once
"./Services/LTI/classes/class.ilLTIViewGUI.php";
1405 self::initUIFramework(
$GLOBALS[
"DIC"]);
1408 if ($lti->isActive()) {
1409 include_once
"./Services/LTI/classes/class.ilTemplate.php";
1415 self::initGlobal(
"tpl",
$tpl);
1418 require_once
'Services/User/classes/class.ilUserRequestTargetAdjustment.php';
1420 $request_adjuster->adjust();
1426 $tpl->setVariable(
"LOCATION_STYLESHEET", $location_stylesheet);
1428 require_once
"./Services/UICore/classes/class.ilFrameTargetInfo.php";
1431 "ilNavigationHistory",
1432 "ilNavigationHistory",
1433 "Services/Navigation/classes/class.ilNavigationHistory.php" 1439 "./Services/Utilities/classes/class.ilBrowser.php" 1445 "Services/Help/classes/class.ilHelpGUI.php" 1451 "./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php" 1457 "./Services/Locator/classes/class.ilLocatorGUI.php" 1463 "./Services/UIComponent/Tabs/classes/class.ilTabsGUI.php" 1468 if ($lti->isActive()) {
1469 include_once
'./Services/LTI/classes/class.ilMainMenuGUI.php';
1472 include_once
'./Services/MainMenu/classes/class.ilMainMenuGUI.php';
1476 self::initGlobal(
"ilMainMenu", $ilMainMenu);
1482 $_GET[
'limit'] = (int) $ilUser->getPref(
'hits_per_page');
1491 if (isset(
$_GET[
'offset']) &&
$_GET[
'offset'] !=
"") {
1496 include_once
"Services/User/classes/class.ilObjUser.php";
1507 $cmd = $_REQUEST[
"cmd"];
1508 if (is_array($cmd)) {
1509 return array_shift(array_keys($cmd));
1547 $a_current_script ==
"register.php" ||
1548 $a_current_script ==
"pwassist.php" ||
1549 $a_current_script ==
"confirmReg.php" ||
1550 $a_current_script ==
"il_securimage_play.php" ||
1551 $a_current_script ==
"il_securimage_show.php" ||
1552 $a_current_script ==
'login.php' 1558 if ($_REQUEST[
"baseClass"] ==
"ilStartUpGUI") {
1559 $cmd_class = $_REQUEST[
"cmdClass"];
1561 if ($cmd_class ==
"ilaccountregistrationgui" ||
1562 $cmd_class ==
"ilpasswordassistancegui") {
1567 $cmd = self::getCurrentCmd();
1569 $cmd ==
"showTermsOfService" || $cmd ==
"showClientList" ||
1570 $cmd ==
'showAccountMigration' || $cmd ==
'migrateAccount' ||
1571 $cmd ==
'processCode' || $cmd ==
'showLoginPage' || $cmd ==
'doStandardAuthentication' || $cmd ==
'doCasAuthentication' 1579 if (($a_current_script ==
"goto.php" &&
$_GET[
"target"] ==
"impr_0") ||
1580 $_GET[
"baseClass"] ==
"ilImprintGUI") {
1585 if ($a_current_script ==
'goto.php' && in_array(
$_GET[
'target'],
array(
1586 'usr_registration',
'usr_nameassist',
'usr_pwassist',
'usr_agreement' 1603 if ($a_current_script ==
"login.php") {
1607 if ($_REQUEST[
"baseClass"] ==
"ilStartUpGUI" &&
1608 self::getCurrentCmd() ==
"showLoginPage") {
1630 $lang = $ilUser->getLanguage();
1631 } elseif ($_REQUEST[
"lang"]) {
1633 } elseif ($ilSetting) {
1634 $lang = $ilSetting->get(
"language");
1635 } elseif ($ilClientIniFile) {
1636 $lang = $ilClientIniFile->readVariable(
"language",
"default");
1639 $lang = $lng->getLangKey();
1643 if ($ilDB && $a_message_id) {
1645 require_once
"./Services/Language/classes/class.ilLanguage.php";
1649 $lng->loadLanguageModule(
"init");
1650 $message = $lng->txt($a_message_id);
1651 } elseif (is_array($a_message_static)) {
1652 if (!isset($a_message_static[
$lang])) {
1668 protected static function redirect($a_target, $a_message_id =
'',
array $a_message_static = null)
1671 if (
defined(
"ILIAS_HTTP_PATH") &&
1672 !stristr($a_target, ILIAS_HTTP_PATH)) {
1673 $a_target = ILIAS_HTTP_PATH .
"/" . $a_target;
1679 $message = self::translateMessage($a_message_id, $a_message_static);
1683 $link = self::translateMessage(
1684 "init_error_redirect_click",
1685 array(
"en" =>
'Please click to continue.',
1686 "de" =>
'Bitte klicken um fortzufahren.')
1689 '<br /><a href="' . $a_target .
'">' . $link .
'</a>';
1697 $mess = self::translateMessage(
1698 "init_error_redirect_info",
1699 array(
"en" =>
'Redirect not supported by context.',
1700 "de" =>
'Weiterleitungen werden durch Kontext nicht unterstützt.')
1702 ' (' . $a_target .
')';
1706 self::abortAndDie($mess);
1713 public static function redirectToStartingPage()
1721 if ($ilUser->getId() == ANONYMOUS_USER_ID) {
1728 if (!
$_GET[
"target"]) {
1731 include_once
'./Services/User/classes/class.ilUserUtil.php';
1744 $n_of_tasks = $ilIliasIniFile->readVariable(
"background_tasks",
"number_of_concurrent_tasks");
1745 $sync = $ilIliasIniFile->readVariable(
"background_tasks",
"concurrency");
1747 $n_of_tasks = $n_of_tasks ? $n_of_tasks : 5;
1750 $c[
"bt.task_factory"] =
function ($c) {
1751 return new \ILIAS\BackgroundTasks\Implementation\Tasks\BasicTaskFactory($c[
"di.injector"]);
1754 $c[
"bt.persistence"] =
function ($c) {
1755 return new \ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence();
1758 $c[
"bt.injector"] =
function ($c) {
1759 return new \ILIAS\BackgroundTasks\Dependencies\Injector($c,
new BaseDependencyMap());
1762 $c[
"bt.task_manager"] =
function ($c) use (
$sync) {
1763 if (
$sync ==
'sync') {
1764 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\BasicTaskManager($c[
"bt.persistence"]);
1765 } elseif (
$sync ==
'async') {
1766 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\AsyncTaskManager($c[
"bt.persistence"]);
1768 throw new ilException(
"The supported Background Task Managers are sync and async. $sync given.");
1776 $c[
"di.dependency_map"] =
function ($c) {
1777 return new \ILIAS\BackgroundTasks\Dependencies\DependencyMap\BaseDependencyMap();
1780 $c[
"di.injector"] =
function ($c) {
1781 return new \ILIAS\BackgroundTasks\Dependencies\Injector($c, $c[
"di.dependency_map"]);
static initHTTPServices(\ILIAS\DI\Container $container)
Class ilUserAvatarFactory.
static initAvatar(\ILIAS\DI\Container $c)
static handleMaintenanceMode()
handle maintenance mode
Handles display of the main menu.
static hasUser()
Based on user authentication?
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
Class ilMailMimeSenderFactory.
const PEAR_ERROR_CALLBACK
static includePhp5Compliance()
This is a hack for authentication.
static usesHTTP()
Uses HTTP aka browser.
static initFileUploadService(\ILIAS\DI\Container $dic)
Initializes the file upload service.
static initHTML()
init HTML output (level 3)
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static blockedAuthentication($a_current_script)
Block authentication based on current request.
Class ilGlobalCacheSettings.
Database Session Handling.
static setup(ilGlobalCacheSettings $ilGlobalCacheSettings)
Wraps global ilTemplate to provide JavaScriptBinding.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const SESSION_CLOSE_LOGIN
static determineClient()
This method determines the current client and sets the constant CLIENT_ID.
static get($a_var)
Get a value.
static isAuthenticationForced()
Check if authentication is should be forced.
Caches renderers loaded by another loader.
static set($a_var, $a_val)
Set a value.
const CONTEXT_LTI_PROVIDER
static initDefaultTimeZone(ilIniFile $ini)
Initialize default timezone from system settings.
static goToPublicSection()
go to public section
static getClientIdByString($clientId)
static resumeUserSession()
Resume an existing user session.
static setCookieConstants()
static getStartingPointAsUrl()
Get current starting point setting as URL.
static setSessionHandler()
set session handler to db
static initSession()
Init auth session.
static getInstance()
Get instance.
static getCurrentCmd()
Extract current cmd from request.
if($modEnd===false) $module
static initBackgroundTasks(\ILIAS\DI\Container $c)
static initAccessHandling()
$ilAccess and $rbac...
const SESSION_CLOSE_EXPIRE
Administration class for plugins.
static initILIAS()
ilias initialisation
static handleForcedAuthentication()
static usesTemplate()
Uses template engine.
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
catch(Exception $e) $message
static $already_initialized
static start()
Start task scheduler for each server instance.
static initDatabase()
initialise database object $ilDB
static initMail(\ILIAS\DI\Container $c)
static initUIFramework(\ILIAS\DI\Container $c)
init the ILIAS UI framework.
Factory for wrapped ilTemplates.
static _exists($a_session_id)
Check whether session exists.
static initClientIniFile()
This method provides a global instance of class ilIniFile for the client.ini.php file in variable $il...
static hasHTML()
Has HTML output.
static abortAndDie($a_message)
Exit.
special template class to simplify handling of ITX/PEAR
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
static initLocale()
Init Locale.
static requireCommonIncludes()
get common include code files
static initLog()
Init log instance.
static removeTrailingPathSeparators($path)
Class ilUserAccountMaintenanceEnforcement.
static initStyle()
provide $styleDefinition object
static getFallbackInstance()
Builds a global default language instance.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
Create styles array
The data for the language used.
static initClient()
Init client-based objects (level 1)
static initIliasIniFile()
This method provides a global instance of class ilIniFile for the ilias.ini.php file in variable $ilI...
static getInstance()
Get https instance.
const SESSION_CLOSE_PUBLIC
static redirect($a_target, $a_message_id='', array $a_message_static=null)
Redirects to target url if context supports it.
static removeUnsafeCharacters()
Remove unsafe characters from GET.
static initCore()
Init core objects (level 0)
static authenticate()
Try authentication.
static setSessionCookieParams()
set session cookie params
static supportsPersistentSessions()
Check if context supports persistent session handling.
static setClosingContext($a_context)
set closing context (for statistics)
ILIAS Initialisation Utility Class perform basic setup: init database handler, load configuration fil...
static initClient()
Init client.
static initGlobal($a_name, $a_class, $a_source_file=null)
Initialize global instance.
static initInjector(\ILIAS\DI\Container $c)
static goToLogin()
go to login
static getLogger($a_component_id)
Get component logger.
static getInstance(\ilLogger $logger)
Get instance.
static getType()
Get context type.
static translateMessage($a_message_id, array $a_message_static=null)
Translate message if possible.
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
static recursivelyRemoveUnsafeCharacters($var)
static redirect($a_script)
static handleErrorReporting()
Set error reporting level.
static showingLoginForm($a_current_script)
Is current view the login form?
static initSettings()
initialise $ilSettings object and define constants
static initUser()
Init user / authentification (level 2)
static buildHTTPPath()
builds http path
special template class to simplify handling of ITX/PEAR
static getRootLogger()
The unique root logger has a fixed error level.
Plumbing for ILIAS, tries to guess.
static supportsRedirects()
Are redirects supported?
static handleDevMode()
Prepare developer tools.