siteInfo = $this->getSiteInfo(); $this->checkSiteStatus(); if ($this->isNotSafeRequest()) { $this->checkHttpReferer(); $this->checkCsrfToken(); } $this->checkRateLimit(); return true; } public function initialize() { $this->seo = $this->getSeo(); $this->navs = $this->getNavs(); $this->authUser = $this->getAuthUser(); $this->appInfo = $this->getAppInfo(); $this->imInfo = $this->getImInfo(); $this->seo->setTitle($this->siteInfo['title']); $this->view->setVar('seo', $this->seo); $this->view->setVar('navs', $this->navs); $this->view->setVar('auth_user', $this->authUser); $this->view->setVar('app_info', $this->appInfo); $this->view->setVar('site_info', $this->siteInfo); $this->view->setVar('im_info', $this->imInfo); } protected function getAuthUser() { /** * @var DesktopAuth $auth */ $auth = $this->getDI()->get('auth'); return $auth->getCurrentUser(); } protected function getSeo() { return new Seo(); } protected function getNavs() { $cache = new NavCache(); return $cache->get(); } protected function getSiteInfo() { $cache = new SettingCache(); return $cache->get('site'); } protected function getAppInfo() { return new AppInfo(); } protected function getImInfo() { $cache = new SettingCache(); $im = $cache->get('im'); return [ 'title' => $im['title'], 'cs' => [ 'enabled' => $im['cs_enabled'], ], 'websocket' => [ 'url' => $this->config->websocket->url, ], ]; } protected function checkSiteStatus() { if ($this->siteInfo['enabled'] == 0) { $this->dispatcher->forward([ 'controller' => 'error', 'action' => 'maintain', 'params' => ['message' => $this->siteInfo['closed_tips']], ]); } } }