From 96b223676d6f3364530389d49d3518ac6748714d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Wed, 11 Mar 2015 15:47:24 +0100
Subject: [PATCH] Don't play with config values ...

---
 core/command/maintenance/install.php |  3 +--
 lib/private/setup.php                | 17 +++++++++++------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/core/command/maintenance/install.php b/core/command/maintenance/install.php
index 92a28425e5..eecdb08e62 100644
--- a/core/command/maintenance/install.php
+++ b/core/command/maintenance/install.php
@@ -40,9 +40,8 @@ class Install extends Command {
 	protected function execute(InputInterface $input, OutputInterface $output) {
 
 		// validate the environment
-		$this->config->setSystemValue('supportedDatabases', ['sqlite', 'mysql', 'pgsql', 'oci']);
 		$setupHelper = new Setup($this->config, \OC::$server->getIniWrapper(), \OC::$server->getL10N('lib'), new \OC_Defaults());
-		$sysInfo = $setupHelper->getSystemInfo();
+		$sysInfo = $setupHelper->getSystemInfo(true);
 		$errors = $sysInfo['errors'];
 		if (count($errors) > 0) {
 			$this->printErrors($output, $errors);
diff --git a/lib/private/setup.php b/lib/private/setup.php
index 1da42f0f8a..44b6ad56cb 100644
--- a/lib/private/setup.php
+++ b/lib/private/setup.php
@@ -68,10 +68,11 @@ class Setup {
 	/**
 	 * Get the available and supported databases of this instance
 	 *
-	 * @throws Exception
+	 * @param bool $allowAllDatabases
 	 * @return array
+	 * @throws Exception
 	 */
-	public function getSupportedDatabases() {
+	public function getSupportedDatabases($allowAllDatabases = false) {
 		$availableDatabases = array(
 			'sqlite' =>  array(
 				'type' => 'class',
@@ -99,8 +100,12 @@ class Setup {
 				'name' => 'MS SQL'
 			)
 		);
-		$configuredDatabases = $this->config->getSystemValue('supportedDatabases',
-			array('sqlite', 'mysql', 'pgsql'));
+		if ($allowAllDatabases) {
+			$configuredDatabases = array_keys($availableDatabases);
+		} else {
+			$configuredDatabases = $this->config->getSystemValue('supportedDatabases',
+				array('sqlite', 'mysql', 'pgsql'));
+		}
 		if(!is_array($configuredDatabases)) {
 			throw new Exception('Supported databases are not properly configured.');
 		}
@@ -131,8 +136,8 @@ class Setup {
 	 * @return array of system info, including an "errors" value
 	 * in case of errors/warnings
 	 */
-	public function getSystemInfo() {
-		$databases = $this->getSupportedDatabases();
+	public function getSystemInfo($allowAllDatabases = false) {
+		$databases = $this->getSupportedDatabases($allowAllDatabases);
 
 		$dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data');
 
-- 
GitLab