/**
  * Result of checking DB credentials
  *
  * @return JsonModel
  */
 public function indexAction()
 {
     try {
         $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
         $password = isset($params['password']) ? $params['password'] : '';
         $this->dbValidator->checkDatabaseConnection($params['name'], $params['host'], $params['user'], $password);
         $tablePrefix = isset($params['tablePrefix']) ? $params['tablePrefix'] : '';
         $this->dbValidator->checkDatabaseTablePrefix($tablePrefix);
         return new JsonModel(['success' => true]);
     } catch (\Exception $e) {
         return new JsonModel(['success' => false, 'error' => $e->getMessage()]);
     }
 }
示例#2
0
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage Table prefix length can't be more than
  */
 public function testCheckDatabaseTablePrefixWrongLength()
 {
     $this->assertEquals(
         true,
         $this->dbValidator->checkDatabaseTablePrefix('mvbXzXzItSIr0wrZW3gqgV2UKrWiK1Mj7bkBlW72rZW3gqgV2UKrWiK1M')
     );
 }
 /**
  * Validate Db table prefix
  *
  * @param string $option
  * @return string[]
  */
 private function validateDbPrefix($option)
 {
     $errors = [];
     try {
         $this->dbValidator->checkDatabaseTablePrefix($option);
     } catch (\InvalidArgumentException $exception) {
         $errors[] = $exception->getMessage();
     }
     return $errors;
 }
示例#4
0
 /**
  * {@inheritdoc}
  */
 public function validate(array $options, DeploymentConfig $deploymentConfig)
 {
     $errors = [];
     if (isset($options[ConfigOptionsListConstants::INPUT_KEY_DB_PREFIX])) {
         try {
             $this->dbValidator->checkDatabaseTablePrefix($options[ConfigOptionsListConstants::INPUT_KEY_DB_PREFIX]);
         } catch (\InvalidArgumentException $exception) {
             $errors[] = $exception->getMessage();
         }
     }
     if (!$options[ConfigOptionsListConstants::INPUT_KEY_SKIP_DB_VALIDATION] && ($options[ConfigOptionsListConstants::INPUT_KEY_DB_NAME] !== null || $options[ConfigOptionsListConstants::INPUT_KEY_DB_HOST] !== null || $options[ConfigOptionsListConstants::INPUT_KEY_DB_USER] !== null || $options[ConfigOptionsListConstants::INPUT_KEY_DB_PASSWORD] !== null)) {
         try {
             $options = $this->getDbSettings($options, $deploymentConfig);
             $this->dbValidator->checkDatabaseConnection($options[ConfigOptionsListConstants::INPUT_KEY_DB_NAME], $options[ConfigOptionsListConstants::INPUT_KEY_DB_HOST], $options[ConfigOptionsListConstants::INPUT_KEY_DB_USER], $options[ConfigOptionsListConstants::INPUT_KEY_DB_PASSWORD]);
         } catch (\Exception $exception) {
             $errors[] = $exception->getMessage();
         }
     }
     $errors = array_merge($errors, $this->validateSessionSave($options), $this->validateEncryptionKey($options));
     return $errors;
 }
 /**
  * Validates that MySQL is accessible and MySQL version is supported
  *
  * @return void
  */
 private function assertDbAccessible()
 {
     $this->dbValidator->checkDatabaseConnection(
         $this->deploymentConfig->get(
             ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT .
             '/' . ConfigOptionsListConstants::KEY_NAME
         ),
         $this->deploymentConfig->get(
             ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT .
             '/' . ConfigOptionsListConstants::KEY_HOST
         ),
         $this->deploymentConfig->get(
             ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT .
             '/' . ConfigOptionsListConstants::KEY_USER
         ),
         $this->deploymentConfig->get(
             ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT .
             '/' . ConfigOptionsListConstants::KEY_PASSWORD
         )
     );
     $prefix = $this->deploymentConfig->get(
         ConfigOptionsListConstants::CONFIG_PATH_DB_CONNECTION_DEFAULT .
         '/' . ConfigOptionsListConstants::KEY_PREFIX
     );
     if (null !== $prefix) {
         $this->dbValidator->checkDatabaseTablePrefix($prefix);
     }
 }
示例#6
0
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage Please correct the table prefix format
  */
 public function testCheckDatabaseTablePrefixWrongFormat()
 {
     $this->assertEquals(true, $this->dbValidator->checkDatabaseTablePrefix('_wrong_format'));
 }