/** * @return void */ protected function initAdminPanel() { $this->RType = (bool) CApi::GetConf('tenant', false); $this->AType = !!CApi::Manager('collaboration'); $this->aTabsSort = array(AP_TAB_COMMON, AP_TAB_DOMAINS, AP_TAB_USERS, AP_TAB_TENANTS, AP_TAB_CHANNELS, AP_TAB_SYSTEM); $GLOBALS[AP_START_TIME] = ap_Utils::Microtime(); $GLOBALS[AP_DB_COUNT] = 0; if (isset($_GET['logout'])) { CSession::ClearAll(); CApi::Location(AP_INDEX_FILE . '?login'); } if (isset($_GET['tab']) && strlen($_GET['tab']) > 0) { CSession::Set(AP_SESS_TAB, $_GET['tab']); } else { CSession::Set(AP_SESS_TAB, CSession::Get(AP_SESS_TAB, AP_TAB_DEFAULT)); } $this->sTab = CSession::Get(AP_SESS_TAB, AP_TAB_DEFAULT); try { $this->CssAddFile('static/styles/style.css'); $this->JsAddFile('static/js/common.js'); $this->JsAddFile('static/js/jquery.js'); if (!CApi::IsValid()) { return false; } $this->initModules(); $this->initType(); $this->initAuth(); $this->sHelpUrl = ''; $sUrl = $this->IsTenantAuthType() ? (string) CApi::GetConf('labs.custom-tenant-help-url', '') : (string) CApi::GetConf('labs.custom-admin-help-url', ''); if (0 < strlen($sUrl)) { $this->sHelpUrl = $sUrl; } else { if ($this->AType) { $this->sHelpUrl = 'http://www.afterlogic.com/wiki/Aurora_documentation'; } else { if ($this->PType) { $this->sHelpUrl = 'http://www.afterlogic.com/wiki/WebMail_Pro_documentation'; } else { $this->sHelpUrl = 'http://www.afterlogic.com/wiki/WebMail_Lite_documentation'; } } } if (isset($_GET['help'])) { if (0 < strlen($this->sHelpUrl)) { CApi::Location($this->sHelpUrl); } else { CApi::Location('?root'); } } $bResetToDefault = true; foreach ($this->aTabs as $aTab) { if (isset($aTab[1]) && (string) $aTab[1] === (string) $this->sTab) { $bResetToDefault = false; break; } } if ($bResetToDefault) { $this->sTab = $this->IsTenantAuthType() ? AP_TAB_TENANT_DEFAULT : AP_TAB_DEFAULT; CSession::Set(AP_SESS_TAB, $this->sTab); } if (isset($_GET['submit']) && isset($_POST) && 0 < count($_POST)) { $this->bShowScreen = false; $sReturnRef = $this->initPostActionModules($this->sTab); CApi::Location(AP_INDEX_FILE . $sReturnRef); } else { if (isset($_GET['pop'])) { $this->bShowScreen = false; $this->initPopActionModules($this->sTab); } else { if (isset($_GET['blank'])) { $this->bShowScreen = false; $this->initBlankActionModules($this->sTab); } else { if (isset($_GET['ajax'])) { $this->bShowScreen = false; $this->initAjaxActionModules($this->sTab); } else { $this->oCurrentScreen = $this->initScreen($this->sTab); if ($this->oCurrentScreen) { $this->oCurrentScreen->PreModuleInit(); $this->initCurrentScreenByModules('first', $this->sTab, $this->oCurrentScreen); $this->oCurrentScreen->MiddleModuleInit(); $this->initCurrentScreenByModules('second', $this->sTab, $this->oCurrentScreen); $this->oCurrentScreen->EndModuleInit(); $this->initCurrentScreenByModules('third', $this->sTab, $this->oCurrentScreen); } if (CSession::Has(AP_SESS_ERROR)) { $this->JsAddInitText('OnlineMsgError("' . ap_Utils::ReBuildStringToJavaScript(nl2br(CSession::Get(AP_SESS_ERROR, '')), '"') . '");'); CSession::Clear(AP_SESS_ERROR); } else { if (CSession::Has(AP_SESS_MESSAGE)) { $this->JsAddInitText('OnlineMsgInfo("' . ap_Utils::ReBuildStringToJavaScript(nl2br(CSession::Get(AP_SESS_MESSAGE, '')), '"') . '");'); CSession::Clear(AP_SESS_MESSAGE); } } } } } } } catch (Exception $oExeption) { $this->oCurrentScreen = new ap_Simple_Screen($this, 'error.php', array('ErrorDesc' => 'Admin Panel internal error.')); } }