From 016c6e38061a7c00b131405688bee8ea5c868779 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 2 Feb 2022 15:03:11 +0100 Subject: Allow specify a config prefix for another database connection Signed-off-by: Joas Schilling --- lib/private/DB/ConnectionFactory.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/private/DB/ConnectionFactory.php b/lib/private/DB/ConnectionFactory.php index b4c7597f6d4..a1fe40dc13f 100644 --- a/lib/private/DB/ConnectionFactory.php +++ b/lib/private/DB/ConnectionFactory.php @@ -189,22 +189,23 @@ class ConnectionFactory { /** * Create the connection parameters for the config * + * @param string $configPrefix * @return array */ - public function createConnectionParams() { + public function createConnectionParams(string $configPrefix = '') { $type = $this->config->getValue('dbtype', 'sqlite'); $connectionParams = [ - 'user' => $this->config->getValue('dbuser', ''), - 'password' => $this->config->getValue('dbpassword', ''), + 'user' => $this->config->getValue($configPrefix . 'dbuser', $this->config->getValue('dbuser', '')), + 'password' => $this->config->getValue($configPrefix . 'dbpassword', $this->config->getValue('dbpassword', '')), ]; - $name = $this->config->getValue('dbname', self::DEFAULT_DBNAME); + $name = $this->config->getValue($configPrefix . 'dbname', $this->config->getValue('dbname', self::DEFAULT_DBNAME)); if ($this->normalizeType($type) === 'sqlite3') { $dataDir = $this->config->getValue("datadirectory", \OC::$SERVERROOT . '/data'); $connectionParams['path'] = $dataDir . '/' . $name . '.db'; } else { - $host = $this->config->getValue('dbhost', ''); + $host = $this->config->getValue($configPrefix . 'dbhost', $this->config->getValue('dbhost', '')); $connectionParams = array_merge($connectionParams, $this->splitHostFromPortAndSocket($host)); $connectionParams['dbname'] = $name; } @@ -213,7 +214,7 @@ class ConnectionFactory { $connectionParams['sqlite.journal_mode'] = $this->config->getValue('sqlite.journal_mode', 'WAL'); //additional driver options, eg. for mysql ssl - $driverOptions = $this->config->getValue('dbdriveroptions', null); + $driverOptions = $this->config->getValue($configPrefix . 'dbdriveroptions', $this->config->getValue('dbdriveroptions', null)); if ($driverOptions) { $connectionParams['driverOptions'] = $driverOptions; } -- cgit v1.2.3