Skip to content
Snippets Groups Projects
Commit 8a79d314 authored by Robin Appelman's avatar Robin Appelman
Browse files

Remove duplicate database connect logic in mysql setup

parent 2bf7d3a5
No related branches found
No related tags found
No related merge requests found
......@@ -428,4 +428,8 @@ class AllConfig implements \OCP\IConfig {
return $userIDs;
}
public function getSystemConfig() {
return $this->systemConfig;
}
}
......@@ -23,6 +23,8 @@
*/
namespace OC\Setup;
use OC\AllConfig;
use OC\DB\ConnectionFactory;
use OCP\IConfig;
use OCP\ILogger;
use OCP\Security\ISecureRandom;
......@@ -45,7 +47,7 @@ abstract class AbstractDatabase {
protected $dbPort;
/** @var string */
protected $tablePrefix;
/** @var IConfig */
/** @var AllConfig */
protected $config;
/** @var ILogger */
protected $logger;
......@@ -98,6 +100,24 @@ abstract class AbstractDatabase {
$this->tablePrefix = $dbTablePrefix;
}
/**
* @return \OC\DB\Connection
* @throws \OC\DatabaseSetupException
*/
protected function connect() {
$systemConfig = $this->config->getSystemConfig();
$cf = new ConnectionFactory();
$connectionParams = $cf->createConnectionParams($systemConfig);
// we don't save username/password to the config immediately so this might not be set
if (!$connectionParams['user']) {
$connectionParams['user'] = $this->dbUser;
}
if (!$connectionParams['password']) {
$connectionParams['password'] = $this->dbPassword;
}
return $cf->getConnection($systemConfig->getValue('dbtype', 'sqlite'), $connectionParams);
}
/**
* @param string $userName
*/
......
......@@ -87,41 +87,6 @@ class MySQL extends AbstractDatabase {
$connection->executeUpdate($query);
}
/**
* @return \OC\DB\Connection
* @throws \OC\DatabaseSetupException
*/
private function connect() {
$connectionParams = array(
'host' => $this->dbHost,
'user' => $this->dbUser,
'password' => $this->dbPassword,
'tablePrefix' => $this->tablePrefix,
);
// adding port support through installer
if(!empty($this->dbPort)) {
if (ctype_digit($this->dbPort)) {
$connectionParams['port'] = $this->dbPort;
} else {
$connectionParams['unix_socket'] = $this->dbPort;
}
} else if (strpos($this->dbHost, ':')) {
// Host variable may carry a port or socket.
list($host, $portOrSocket) = explode(':', $this->dbHost, 2);
if (ctype_digit($portOrSocket)) {
$connectionParams['port'] = $portOrSocket;
} else {
$connectionParams['unix_socket'] = $portOrSocket;
}
$connectionParams['host'] = $host;
}
$cf = new ConnectionFactory();
return $cf->getConnection('mysql', $connectionParams);
}
/**
* @param $username
* @param IDBConnection $connection
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment