示例#1
0
 /**
  * @param \Exception|null $exception
  */
 public function dispatch($exception = null)
 {
     if ($exception) {
         $message = $exception->getMessage();
     } else {
         $message = '';
     }
     $action = Common::getRequestVar('action', 'welcome', 'string');
     if ($this->isAllowedAction($action)) {
         echo FrontController::getInstance()->dispatch('Installation', $action, array($message));
     } else {
         Piwik::exitWithErrorMessage(Piwik::translate('Installation_NoConfigFound'));
     }
     exit;
 }
 /**
  * @param \Exception|null $exception
  */
 public function dispatch($exception = null)
 {
     if ($exception) {
         $message = $exception->getMessage();
     } else {
         $message = '';
     }
     Translate::loadCoreTranslation();
     $step = Common::getRequestVar('action', 'welcome', 'string');
     $controller = $this->getInstallationController();
     $isActionWhiteListed = in_array($step, array('saveLanguage', 'getBaseCss'));
     if (in_array($step, array_keys($controller->getInstallationSteps())) || $isActionWhiteListed) {
         echo FrontController::getInstance()->dispatch('Installation', $step, array($message));
     } else {
         Piwik::exitWithErrorMessage(Piwik::translate('Installation_NoConfigFound'));
     }
     exit;
 }
示例#3
0
 private function checkPiwikIsNotInstalled()
 {
     if (!SettingsPiwik::isPiwikInstalled()) {
         return;
     }
     \Piwik\Plugins\Login\Controller::clearSession();
     $message = Piwik::translate('Installation_InvalidStateError', array('<br /><strong>', '</strong>', '<a href=\'' . Common::sanitizeInputValue(Url::getCurrentUrlWithoutFileName()) . '\'>', '</a>'));
     Piwik::exitWithErrorMessage($message);
 }
示例#4
0
 /**
  * The previous step is valid if it is either
  * - any step before (OK to go back)
  * - the current step (case when validating a form)
  * If step is invalid, then exit.
  *
  * @param string $currentStep Current step
  */
 protected function checkPreviousStepIsValid($currentStep)
 {
     $error = false;
     if (empty($this->session->currentStepDone)) {
         $error = true;
     } else {
         if ($currentStep == 'finished' && $this->session->currentStepDone == 'finished') {
             // ok to refresh this page or use language selector
         } else {
             if (file_exists(Config::getLocalConfigPath())) {
                 $error = true;
             }
             $steps = array_keys($this->steps);
             // the currentStep
             $currentStepId = array_search($currentStep, $steps);
             // the step before
             $previousStepId = array_search($this->session->currentStepDone, $steps);
             // not OK if currentStepId > previous+1
             if ($currentStepId > $previousStepId + 1) {
                 $error = true;
             }
         }
     }
     if ($error) {
         \Piwik\Plugins\Login\Controller::clearSession();
         $message = Piwik::translate('Installation_ErrorInvalidState', array('<br /><strong>', '</strong>', '<a href=\'' . Common::sanitizeInputValue(Url::getCurrentUrlWithoutFileName()) . '\'>', '</a>'));
         Piwik::exitWithErrorMessage($message);
     }
 }