summaryrefslogtreecommitdiffstats
path: root/lib/private/Setup
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2016-07-12 13:11:44 +0200
committerRobin Appelman <icewind@owncloud.com>2016-07-12 14:38:24 +0200
commit8a79d314cf544cf2ca261cbac7ea07570e9ed8e5 (patch)
tree5242aa67b16c0e7ea0e2e1bf198f8434b0a8f358 /lib/private/Setup
parent2bf7d3a5bd31ecdabeade82b0ac45b061d41d186 (diff)
downloadnextcloud-server-8a79d314cf544cf2ca261cbac7ea07570e9ed8e5.tar.gz
nextcloud-server-8a79d314cf544cf2ca261cbac7ea07570e9ed8e5.zip
Remove duplicate database connect logic in mysql setup
Diffstat (limited to 'lib/private/Setup')
-rw-r--r--lib/private/Setup/AbstractDatabase.php22
-rw-r--r--lib/private/Setup/MySQL.php35
2 files changed, 21 insertions, 36 deletions
diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php
index 08ed741f51c..62e9b2e823f 100644
--- a/lib/private/Setup/AbstractDatabase.php
+++ b/lib/private/Setup/AbstractDatabase.php
@@ -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;
@@ -99,6 +101,24 @@ abstract class AbstractDatabase {
}
/**
+ * @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
*/
abstract public function setupDatabase($userName);
diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php
index 1ff7b278b86..03a1421f428 100644
--- a/lib/private/Setup/MySQL.php
+++ b/lib/private/Setup/MySQL.php
@@ -88,41 +88,6 @@ class MySQL extends AbstractDatabase {
}
/**
- * @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
* @return array