Beispiel #1
0
 /**
  * @throws \Exception
  */
 public function init()
 {
     $conf = Config::getSystemConfig();
     if (!$conf->webservice->enabled) {
         throw new \Exception("Webservice API isn't enabled");
     }
     if (!$this->getParam("apikey") && $_COOKIE["pimcore_admin_sid"]) {
         $user = Authentication::authenticateSession();
         if (!$user instanceof User) {
             throw new \Exception("User is not valid");
         }
     } else {
         if (!$this->getParam("apikey")) {
             throw new \Exception("API key missing");
         } else {
             $apikey = $this->getParam("apikey");
             $userList = new User\Listing();
             $userList->setCondition("apiKey = ? AND type = ? AND active = 1", array($apikey, "user"));
             $users = $userList->load();
             if (!is_array($users) or count($users) !== 1) {
                 throw new \Exception("API key error.");
             }
             if (!$users[0]->getApiKey()) {
                 throw new \Exception("Couldn't get API key for user.");
             }
             $user = $users[0];
         }
     }
     \Zend_Registry::set("pimcore_admin_user", $user);
     parent::init();
 }
Beispiel #2
0
 public function init()
 {
     parent::init();
     if (is_file(\Pimcore\Config::locateConfigFile("system.php"))) {
         // session authentication, only possible if user is logged in
         $user = \Pimcore\Tool\Authentication::authenticateSession();
         if (!$user instanceof User) {
             die("Authentication failed!<br />If you don't have access to the admin interface any more, and you want to find out if the server configuration matches the requirements you have to rename the the system.php for the time of the check.");
         }
     } elseif ($this->getParam("mysql_adapter")) {
     } else {
         die("Not possible... no database settings given.<br />Parameters: mysql_adapter,mysql_host,mysql_username,mysql_password,mysql_database");
     }
 }
Beispiel #3
0
 public function init()
 {
     parent::init();
     $maxExecutionTime = 300;
     @ini_set("max_execution_time", $maxExecutionTime);
     set_time_limit($maxExecutionTime);
     error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
     @ini_set("display_errors", "On");
     $front = \Zend_Controller_Front::getInstance();
     $front->throwExceptions(true);
     \Zend_Controller_Action_HelperBroker::addPrefix('Pimcore_Controller_Action_Helper');
     if (is_file(PIMCORE_CONFIGURATION_SYSTEM)) {
         $this->redirect("/admin");
     }
 }
Beispiel #4
0
 /**
  *
  */
 public function postDispatch()
 {
     parent::postDispatch();
     if (isset($this->parentBlockCurrent) && $this->parentBlockCurrent && !$this->getParam("disableBlockClearing")) {
         $this->forceRender();
         \Zend_Registry::set("pimcore_tag_block_current", $this->parentBlockCurrent);
         \Zend_Registry::set("pimcore_tag_block_numeration", $this->parentBlockNumeration);
     }
     // restore the previois set locale if available
     // for a detailed description on this, please have a look at $this->setLocaleFromDocument()
     if ($this->previousLocale) {
         $this->forceRender();
         $this->setLocale($this->previousLocale);
         $this->previousLocale = null;
     }
 }
Beispiel #5
0
 /**
  * @throws \Zend_Exception
  */
 public function init()
 {
     parent::init();
     // set language
     if (\Zend_Registry::isRegistered("Zend_Locale")) {
         $locale = (string) \Zend_Registry::get("Zend_Locale");
         $this->setLanguage($locale);
     } else {
         if ($this->getParam("language")) {
             $this->setLanguage($this->getParam("language"));
         } else {
             $config = Config::getSystemConfig();
             $this->setLanguage($config->general->language);
             // try to set browser-language (validation if installed is in $this->setLanguage() )
             $this->setLanguage(new \Zend_Locale());
         }
     }
     if (self::$adminInitialized) {
         // this will be executed on every call to this init() method
         try {
             $this->setUser(\Zend_Registry::get("pimcore_admin_user"));
         } catch (\Exception $e) {
             \Logger::emerg("adminInitialized was set to true although there was no user set in the registry -> to be save the process was killed");
             exit;
         }
     } else {
         // the following code is only called once, even when there are some subcalls (eg. with $this->action, ... )
         \Pimcore::getEventManager()->trigger("admin.controller.preInit", $this);
         $this->disableBrowserCache();
         // general definitions
         Model\Document::setHideUnpublished(false);
         Model\Object\AbstractObject::setHideUnpublished(false);
         Model\Object\AbstractObject::setGetInheritedValues(false);
         Model\Object\Localizedfield::setGetFallbackValues(false);
         \Pimcore::setAdminMode();
         // init translations
         self::initTranslations($this);
         // init zend action helpers, we need to leave the prefixed class name here as the plugin loader isn't able to handle namespaces
         \Zend_Controller_Action_HelperBroker::addPrefix('Pimcore_Controller_Action_Helper');
         // this is to make it possible to use the session id as a part of the route (ZF default route) used for external editors, etc.
         if ($this->getParam("pimcore_admin_sid")) {
             $_REQUEST["pimcore_admin_sid"] = $this->getParam("pimcore_admin_sid");
         }
         // authenticate user, first try to authenticate with session information
         $user = Authentication::authenticateSession();
         if ($user instanceof Model\User) {
             $this->setUser($user);
             if ($this->getUser()->getLanguage()) {
                 $this->setLanguage($this->getUser()->getLanguage());
             }
         } else {
             // try to authenticate with http basic auth, but this is only allowed for WebDAV
             if ($this->getParam("module") == "admin" && $this->getParam("controller") == "asset" && $this->getParam("action") == "webdav") {
                 $user = Authentication::authenticateHttpBasic();
                 if ($user instanceof Model\User) {
                     $this->setUser($user);
                     \Zend_Registry::set("pimcore_admin_user", $this->getUser());
                     self::$adminInitialized = true;
                     return;
                 }
             }
         }
         // redirect to the login-page if the user isn't authenticated
         if (!$this->getUser() instanceof Model\User && !($this->getParam("module") == "admin" && $this->getParam("controller") == "login")) {
             // put a detailed message into the debug.log
             \Logger::error("Prevented access to " . $_SERVER["REQUEST_URI"] . " because there is no user in the session!", ["server" => $_SERVER, "get" => $_GET, "post" => $_POST, "session" => $_SESSION, "cookie" => $_COOKIE]);
             // send a auth header for the client (is covered by the ajax object in javascript)
             $this->getResponse()->setHeader("X-Pimcore-Auth", "required");
             // redirect to login page
             $this->redirect("/admin/login");
             // exit the execution -> just to be sure
             exit;
         }
         // we're now authenticated so we can remove the default error handler so that we get just the normal PHP errors
         if ($this->getParam("controller") != "login") {
             $front = \Zend_Controller_Front::getInstance();
             $front->unregisterPlugin("Pimcore\\Controller\\Plugin\\ErrorHandler");
             $front->throwExceptions(true);
             @ini_set("display_errors", "On");
             @ini_set("display_startup_errors", "On");
         }
         \Zend_Registry::set("pimcore_admin_user", $this->getUser());
         self::$adminInitialized = true;
         // usage statistics
         $this->logUsageStatistics();
         \Pimcore::getEventManager()->trigger("admin.controller.postInit", $this);
     }
 }
 /**
  * @throws \Exception
  */
 public function init()
 {
     parent::init();
     if (!Configuration::get('frontend.enabled')) {
         return FALSE;
     }
     try {
         \Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
         $this->frontendIndex = \Zend_Search_Lucene::open(Plugin::getFrontendSearchIndex());
         $this->categories = Configuration::get('frontend.categories');
         //set search term query
         $searchQuery = $this->cleanRequestString($this->getParam('q'));
         if (!empty($searchQuery)) {
             $this->query = Plugin::cleanTerm($searchQuery);
             $this->untouchedQuery = $this->query;
         }
         //set Language
         if (Configuration::get('frontend.ignoreLanguage') !== TRUE) {
             $this->searchLanguage = $this->getParam('language');
             if (empty($this->searchLanguage)) {
                 try {
                     $this->searchLanguage = \Zend_Registry::get('Zend_Locale');
                 } catch (Exception $e) {
                     $this->searchLanguage = 'en';
                 }
             }
         } else {
             $this->searchLanguage = NULL;
         }
         //Set Category
         $queryCategory = $this->cleanRequestString($this->getParam('category'));
         if (!empty($queryCategory)) {
             $this->category = $queryCategory;
         }
         //Set Country
         if (Configuration::get('frontend.ignoreCountry') !== TRUE) {
             $this->searchCountry = $this->getParam('country');
             if ($this->searchCountry == 'global') {
                 $this->searchCountry = 'international';
             } else {
                 if (empty($this->searchCountry)) {
                     $this->searchCountry = 'international';
                 }
             }
         } else {
             $this->searchCountry = NULL;
         }
         //Set Restrictions (Auth)
         if (Configuration::get('frontend.ignoreRestriction') === FALSE) {
             $this->searchRestriction = TRUE;
         }
         //Set Fuzzy Search (Auth)
         $fuzzySearchRequest = $this->getParam('fuzzy');
         if (Configuration::get('frontend.fuzzySearch') == TRUE || !empty($fuzzySearchRequest) && $fuzzySearchRequest !== 'false') {
             $this->fuzzySearch = TRUE;
         }
         //Set own Host Only
         if (Configuration::get('frontend.ownHostOnly') == TRUE) {
             $this->ownHostOnly = TRUE;
         }
         //Set Entries per Page
         $this->perPage = Configuration::get('frontend.view.maxPerPage');
         $perPage = $this->getParam('perPage');
         if (!empty($perPage)) {
             $this->perPage = (int) $perPage;
         }
         //Set max Suggestions
         $this->maxSuggestions = Configuration::get('frontend.view.maxSuggestions');
         //Set Current Page
         $currentPage = $this->getParam('page');
         if (!empty($currentPage)) {
             $this->currentPage = (int) $currentPage;
         }
     } catch (\Exception $e) {
         throw new \Exception('could not open index');
     }
 }