/** * Processes an admin-request * * @param string $strModule * @param string $strAction * @param string $strLanguageParam * * @throws class_exception * @return string */ private function processAdminRequest($strModule, $strAction, $strLanguageParam) { $strReturn = ""; $bitLogin = false; //validate https status if (class_module_system_setting::getConfigValue("_admin_only_https_") == "true") { //check which headers to compare $strHeaderName = class_carrier::getInstance()->getObjConfig()->getConfig("https_header"); $strHeaderValue = strtolower(class_carrier::getInstance()->getObjConfig()->getConfig("https_header_value")); //header itself given? if (!issetServer($strHeaderName)) { //reload to https if (_xmlLoader_ === true) { class_response_object::getInstance()->setStrRedirectUrl(uniStrReplace("http:", "https:", _xmlpath_) . "?" . getServer("QUERY_STRING")); } else { class_response_object::getInstance()->setStrRedirectUrl(uniStrReplace("http:", "https:", _indexpath_) . "?" . getServer("QUERY_STRING")); } class_response_object::getInstance()->sendHeaders(); die("Reloading using https..."); } else { if ($strHeaderValue != "" && $strHeaderValue != strtolower(getServer($strHeaderName))) { //reload to https if (_xmlLoader_ === true) { class_response_object::getInstance()->setStrRedirectUrl(uniStrReplace("http:", "https:", _xmlpath_) . "?" . getServer("QUERY_STRING")); } else { class_response_object::getInstance()->setStrRedirectUrl(uniStrReplace("http:", "https:", _indexpath_) . "?" . getServer("QUERY_STRING")); } class_response_object::getInstance()->sendHeaders(); die("Reloading using https..."); } } } //process language-param $objLanguage = new class_module_languages_language(); $objLanguage->setStrAdminLanguageToWorkOn($strLanguageParam); //set the current backend skin. right here to do it only once. class_adminskin_helper::defineSkinWebpath(); //validate login-status / process login-request if ($strModule != "login" && $this->objSession->isLoggedin()) { if ($this->objSession->isAdmin()) { //try to load the module $objModuleRequested = class_module_system_module::getModuleByName($strModule); if ($objModuleRequested != null) { //see if there is data from a previous, failed request if (class_carrier::getInstance()->getObjSession()->getSession(class_module_login_admin::SESSION_LOAD_FROM_PARAMS) === "true") { foreach (class_carrier::getInstance()->getObjSession()->getSession(class_module_login_admin::SESSION_PARAMS) as $strOneKey => $strOneVal) { class_carrier::getInstance()->setParam($strOneKey, $strOneVal); } class_carrier::getInstance()->getObjSession()->sessionUnset(class_module_login_admin::SESSION_LOAD_FROM_PARAMS); class_carrier::getInstance()->getObjSession()->sessionUnset(class_module_login_admin::SESSION_PARAMS); } if (_xmlLoader_) { if ($objModuleRequested->getStrXmlNameAdmin() != "") { $strClassname = str_replace(".php", "", $objModuleRequested->getStrXmlNameAdmin()); $objConcreteModule = new $strClassname(); $strReturn = $objConcreteModule->action($strAction); } else { //xml-loader not defined, try to use the regular dispatcher $objConcreteModule = $objModuleRequested->getAdminInstanceOfConcreteModule(); $strReturn = $objConcreteModule->action($strAction); } } else { //fill the history array to track actions $objHistory = new class_history(); //Writing to the history if (class_carrier::getInstance()->getParam("folderview") == "") { $objHistory->setAdminHistory(); } $objConcreteModule = $objModuleRequested->getAdminInstanceOfConcreteModule(); if (class_carrier::getInstance()->getParam("blockAction") != "1") { $objConcreteModule->action(); $strReturn = $objConcreteModule->getModuleOutput(); } //React, if admin was opened by the portaleditor if (class_carrier::getInstance()->getParam("peClose") == "1") { if (getGet("peRefreshPage") != "") { $strReturn = "<html><head></head><body onload=\"parent.location = '" . urldecode(getGet("peRefreshPage")) . "';\"></body></html>"; } else { $strReturn = "<html><head></head><body onload=\"parent.location.reload();\"></body></html>"; } } } } else { throw new class_exception("Requested module " . $strModule . " not existing", class_exception::$level_FATALERROR); } } else { throw new class_exception("Sorry, but you don't have the needed permissions to access the admin-area", class_exception::$level_FATALERROR); } } else { $bitLogin = true; if ($strModule != "login") { $strAction = ""; } } if ($bitLogin) { if (_xmlLoader_) { $objLogin = new class_module_login_admin_xml(); $strReturn = $objLogin->action($strAction); } else { if (count(class_carrier::getInstance()->getObjDB()->getTables()) == 0 && file_exists(_realpath_ . "/installer.php")) { class_response_object::getInstance()->setStrRedirectUrl(_webpath_ . "/installer.php"); return ""; } $objLogin = new class_module_login_admin(); $objLogin->action($strAction); $strReturn = $objLogin->getModuleOutput(); } } return $strReturn; }
/** * Writes the SessionInfo, overwrite if needed * * @return string */ protected function getOutputLogin() { $objLogin = new class_module_login_admin(); return $objLogin->getLoginStatus(); }