Merge pull request #21283 from owncloud/cleanup_config
Cleanup OC_Config mess
This commit is contained in:
commit
a743047e82
21
lib/base.php
21
lib/base.php
|
@ -112,6 +112,11 @@ class OC {
|
|||
*/
|
||||
public static $server = null;
|
||||
|
||||
/**
|
||||
* @var \OC\Config
|
||||
*/
|
||||
private static $config = null;
|
||||
|
||||
/**
|
||||
* @throws \RuntimeException when the 3rdparty directory is missing or
|
||||
* the app path list is empty or contains an invalid path
|
||||
|
@ -124,7 +129,7 @@ class OC {
|
|||
} else {
|
||||
self::$configDir = OC::$SERVERROOT . '/config/';
|
||||
}
|
||||
OC_Config::$object = new \OC\Config(self::$configDir);
|
||||
self::$config = new \OC\Config(self::$configDir);
|
||||
|
||||
OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT)));
|
||||
/**
|
||||
|
@ -137,7 +142,7 @@ class OC {
|
|||
'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'],
|
||||
],
|
||||
];
|
||||
$fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig()));
|
||||
$fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig(self::$config)));
|
||||
$scriptName = $fakeRequest->getScriptName();
|
||||
if (substr($scriptName, -1) == '/') {
|
||||
$scriptName .= 'index.php';
|
||||
|
@ -152,7 +157,7 @@ class OC {
|
|||
|
||||
|
||||
if (OC::$CLI) {
|
||||
OC::$WEBROOT = OC_Config::getValue('overwritewebroot', '');
|
||||
OC::$WEBROOT = self::$config->getValue('overwritewebroot', '');
|
||||
} else {
|
||||
if (substr($scriptName, 0 - strlen(OC::$SUBURI)) === OC::$SUBURI) {
|
||||
OC::$WEBROOT = substr($scriptName, 0, 0 - strlen(OC::$SUBURI));
|
||||
|
@ -165,7 +170,7 @@ class OC {
|
|||
// This most likely means that we are calling from CLI.
|
||||
// However some cron jobs still need to generate
|
||||
// a web URL, so we use overwritewebroot as a fallback.
|
||||
OC::$WEBROOT = OC_Config::getValue('overwritewebroot', '');
|
||||
OC::$WEBROOT = self::$config->getValue('overwritewebroot', '');
|
||||
}
|
||||
|
||||
// Resolve /owncloud to /owncloud/ to ensure to always have a trailing
|
||||
|
@ -178,8 +183,8 @@ class OC {
|
|||
}
|
||||
|
||||
// search the 3rdparty folder
|
||||
OC::$THIRDPARTYROOT = OC_Config::getValue('3rdpartyroot', null);
|
||||
OC::$THIRDPARTYWEBROOT = OC_Config::getValue('3rdpartyurl', null);
|
||||
OC::$THIRDPARTYROOT = self::$config->getValue('3rdpartyroot', null);
|
||||
OC::$THIRDPARTYWEBROOT = self::$config->getValue('3rdpartyurl', null);
|
||||
|
||||
if (empty(OC::$THIRDPARTYROOT) && empty(OC::$THIRDPARTYWEBROOT)) {
|
||||
if (file_exists(OC::$SERVERROOT . '/3rdparty')) {
|
||||
|
@ -197,7 +202,7 @@ class OC {
|
|||
}
|
||||
|
||||
// search the apps folder
|
||||
$config_paths = OC_Config::getValue('apps_paths', array());
|
||||
$config_paths = self::$config->getValue('apps_paths', array());
|
||||
if (!empty($config_paths)) {
|
||||
foreach ($config_paths as $paths) {
|
||||
if (isset($paths['url']) && isset($paths['path'])) {
|
||||
|
@ -517,7 +522,7 @@ class OC {
|
|||
}
|
||||
|
||||
// setup the basic server
|
||||
self::$server = new \OC\Server(\OC::$WEBROOT);
|
||||
self::$server = new \OC\Server(\OC::$WEBROOT, self::$config);
|
||||
\OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
|
||||
\OC::$server->getEventLogger()->start('boot', 'Initialize');
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ class OC_App {
|
|||
* if $types is set, only apps of those types will be loaded
|
||||
*/
|
||||
public static function loadApps($types = null) {
|
||||
if (OC_Config::getValue('maintenance', false)) {
|
||||
if (\OC::$server->getSystemConfig()->getValue('maintenance', false)) {
|
||||
return false;
|
||||
}
|
||||
// Load the enabled apps here
|
||||
|
@ -239,7 +239,7 @@ class OC_App {
|
|||
* @return string[]
|
||||
*/
|
||||
public static function getEnabledApps($forceRefresh = false, $all = false) {
|
||||
if (!OC_Config::getValue('installed', false)) {
|
||||
if (!\OC::$server->getSystemConfig()->getValue('installed', false)) {
|
||||
return array();
|
||||
}
|
||||
// in incognito mode or when logged out, $user will be false,
|
||||
|
@ -374,7 +374,7 @@ class OC_App {
|
|||
$settings = array();
|
||||
// by default, settings only contain the help menu
|
||||
if (OC_Util::getEditionString() === '' &&
|
||||
OC_Config::getValue('knowledgebaseenabled', true) == true
|
||||
\OC::$server->getSystemConfig()->getValue('knowledgebaseenabled', true) == true
|
||||
) {
|
||||
$settings = array(
|
||||
array(
|
||||
|
@ -455,7 +455,7 @@ class OC_App {
|
|||
* @return string|false
|
||||
*/
|
||||
public static function getInstallPath() {
|
||||
if (OC_Config::getValue('appstoreenabled', true) == false) {
|
||||
if (\OC::$server->getSystemConfig()->getValue('appstoreenabled', true) == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -657,7 +657,7 @@ class OC_Helper {
|
|||
*/
|
||||
public static function getStorageInfo($path, $rootInfo = null) {
|
||||
// return storage info without adding mount points
|
||||
$includeExtStorage = \OC_Config::getValue('quota_include_external_storage', false);
|
||||
$includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
|
||||
|
||||
if (!$rootInfo) {
|
||||
$rootInfo = \OC\Files\Filesystem::getFileInfo($path, false);
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @author Bart Visscher <bartv@thisnet.nl>
|
||||
* @author Joas Schilling <nickvergessen@owncloud.com>
|
||||
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
|
||||
* @author Lukas Reschke <lukas@owncloud.com>
|
||||
* @author Michael Gapczynski <GapczynskiM@gmail.com>
|
||||
* @author Morris Jobke <hey@morrisjobke.de>
|
||||
* @author Robin McCorkell <rmccorkell@karoshi.org.uk>
|
||||
*
|
||||
* @copyright Copyright (c) 2015, ownCloud, Inc.
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* This class is responsible for reading and writing config.php, the very basic
|
||||
* configuration file of ownCloud.
|
||||
*
|
||||
* @deprecated use \OC::$server->getConfig() to get an \OCP\Config instance
|
||||
*/
|
||||
class OC_Config {
|
||||
|
||||
/** @var \OC\Config */
|
||||
public static $object;
|
||||
|
||||
/**
|
||||
* Lists all available config keys
|
||||
* @return array an array of key names
|
||||
*
|
||||
* This function returns all keys saved in config.php. Please note that it
|
||||
* does not return the values.
|
||||
*/
|
||||
public static function getKeys() {
|
||||
return self::$object->getKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a value from config.php
|
||||
* @param string $key key
|
||||
* @param mixed $default = null default value
|
||||
* @return mixed the value or $default
|
||||
*
|
||||
* This function gets the value from config.php. If it does not exist,
|
||||
* $default will be returned.
|
||||
*/
|
||||
public static function getValue($key, $default = null) {
|
||||
return self::$object->getValue($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value
|
||||
* @param string $key key
|
||||
* @param mixed $value value
|
||||
*
|
||||
* This function sets the value and writes the config.php.
|
||||
*
|
||||
*/
|
||||
public static function setValue($key, $value) {
|
||||
self::$object->setValue($key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets and deletes values and writes the config.php
|
||||
*
|
||||
* @param array $configs Associative array with `key => value` pairs
|
||||
* If value is null, the config key will be deleted
|
||||
*/
|
||||
public static function setValues(array $configs) {
|
||||
self::$object->setValues($configs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a key from the config
|
||||
* @param string $key key
|
||||
*
|
||||
* This function removes a key from the config.php.
|
||||
*/
|
||||
public static function deleteKey($key) {
|
||||
self::$object->deleteKey($key);
|
||||
}
|
||||
}
|
|
@ -84,8 +84,9 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
|
||||
/**
|
||||
* @param string $webRoot
|
||||
* @param \OC\Config $config
|
||||
*/
|
||||
public function __construct($webRoot) {
|
||||
public function __construct($webRoot, \OC\Config $config) {
|
||||
parent::__construct();
|
||||
$this->webRoot = $webRoot;
|
||||
|
||||
|
@ -238,8 +239,8 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
$c->getSystemConfig()
|
||||
);
|
||||
});
|
||||
$this->registerService('SystemConfig', function ($c) {
|
||||
return new \OC\SystemConfig();
|
||||
$this->registerService('SystemConfig', function ($c) use ($config) {
|
||||
return new \OC\SystemConfig($config);
|
||||
});
|
||||
$this->registerService('AppConfig', function ($c) {
|
||||
return new \OC\AppConfig(\OC_DB::getConnection());
|
||||
|
|
|
@ -44,12 +44,19 @@ class SystemConfig {
|
|||
'objectstore' => ['arguments' => ['password' => true]],
|
||||
];
|
||||
|
||||
/** @var Config */
|
||||
private $config;
|
||||
|
||||
public function __construct(Config $config) {
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists all available config keys
|
||||
* @return array an array of key names
|
||||
*/
|
||||
public function getKeys() {
|
||||
return \OC_Config::getKeys();
|
||||
return $this->config->getKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -59,7 +66,7 @@ class SystemConfig {
|
|||
* @param mixed $value the value that should be stored
|
||||
*/
|
||||
public function setValue($key, $value) {
|
||||
\OC_Config::setValue($key, $value);
|
||||
$this->config->setValue($key, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -69,7 +76,7 @@ class SystemConfig {
|
|||
* If value is null, the config key will be deleted
|
||||
*/
|
||||
public function setValues(array $configs) {
|
||||
\OC_Config::setValues($configs);
|
||||
$this->config->setValues($configs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -80,7 +87,7 @@ class SystemConfig {
|
|||
* @return mixed the value or $default
|
||||
*/
|
||||
public function getValue($key, $default = '') {
|
||||
return \OC_Config::getValue($key, $default);
|
||||
return $this->config->getValue($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -106,7 +113,7 @@ class SystemConfig {
|
|||
* @param string $key the key of the value, under which it was saved
|
||||
*/
|
||||
public function deleteValue($key) {
|
||||
\OC_Config::deleteKey($key);
|
||||
$this->config->deleteKey($key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -130,7 +130,7 @@ class OC_User {
|
|||
*/
|
||||
public static function setupBackends() {
|
||||
OC_App::loadApps(array('prelogin'));
|
||||
$backends = OC_Config::getValue('user_backends', array());
|
||||
$backends = \OC::$server->getSystemConfig()->getValue('user_backends', array());
|
||||
foreach ($backends as $i => $config) {
|
||||
$class = $config['class'];
|
||||
$arguments = $config['arguments'];
|
||||
|
@ -498,7 +498,7 @@ class OC_User {
|
|||
if ($user) {
|
||||
return $user->getHome();
|
||||
} else {
|
||||
return OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid;
|
||||
return \OC::$server->getSystemConfig()->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/' . $uid;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ class OC_Util {
|
|||
|
||||
private static function initLocalStorageRootFS() {
|
||||
// mount local file backend as root
|
||||
$configDataDirectory = OC_Config::getValue("datadirectory", OC::$SERVERROOT . "/data");
|
||||
$configDataDirectory = \OC::$server->getSystemConfig()->getValue("datadirectory", OC::$SERVERROOT . "/data");
|
||||
//first set up the local "root" storage
|
||||
\OC\Files\Filesystem::initMountManager();
|
||||
if (!self::$rootMounted) {
|
||||
|
@ -184,7 +184,7 @@ class OC_Util {
|
|||
OC_Hook::emit('OC_Filesystem', 'preSetup', array('user' => $user));
|
||||
|
||||
//check if we are using an object storage
|
||||
$objectStore = OC_Config::getValue('objectstore');
|
||||
$objectStore = \OC::$server->getSystemConfig()->getValue('objectstore', null);
|
||||
if (isset($objectStore)) {
|
||||
self::initObjectStoreRootFS($objectStore);
|
||||
} else {
|
||||
|
@ -848,7 +848,7 @@ class OC_Util {
|
|||
public static function checkDatabaseVersion() {
|
||||
$l = \OC::$server->getL10N('lib');
|
||||
$errors = array();
|
||||
$dbType = \OC_Config::getValue('dbtype', 'sqlite');
|
||||
$dbType = \OC::$server->getSystemConfig()->getValue('dbtype', 'sqlite');
|
||||
if ($dbType === 'pgsql') {
|
||||
// check PostgreSQL version
|
||||
try {
|
||||
|
@ -1108,11 +1108,11 @@ class OC_Util {
|
|||
* @return string
|
||||
*/
|
||||
public static function getInstanceId() {
|
||||
$id = OC_Config::getValue('instanceid', null);
|
||||
$id = \OC::$server->getSystemConfig()->getValue('instanceid', null);
|
||||
if (is_null($id)) {
|
||||
// We need to guarantee at least one letter in instanceid so it can be used as the session_name
|
||||
$id = 'oc' . \OC::$server->getSecureRandom()->getLowStrengthGenerator()->generate(10, \OCP\Security\ISecureRandom::CHAR_LOWER.\OCP\Security\ISecureRandom::CHAR_DIGITS);
|
||||
OC_Config::$object->setValue('instanceid', $id);
|
||||
\OC::$server->getSystemConfig()->setValue('instanceid', $id);
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
@ -1364,7 +1364,7 @@ class OC_Util {
|
|||
* @return string the theme
|
||||
*/
|
||||
public static function getTheme() {
|
||||
$theme = OC_Config::getValue("theme", '');
|
||||
$theme = \OC::$server->getSystemConfig()->getValue("theme", '');
|
||||
|
||||
if ($theme === '') {
|
||||
if (is_dir(OC::$SERVERROOT . '/themes/default')) {
|
||||
|
|
|
@ -28,7 +28,9 @@ class TestAllConfig extends \Test\TestCase {
|
|||
$connection = $this->connection;
|
||||
}
|
||||
if($systemConfig === null) {
|
||||
$systemConfig = $this->getMock('\OC\SystemConfig');
|
||||
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
}
|
||||
return new \OC\AllConfig($systemConfig, $connection);
|
||||
}
|
||||
|
@ -89,7 +91,9 @@ class TestAllConfig extends \Test\TestCase {
|
|||
|
||||
public function testSetUserValueWithPreCondition() {
|
||||
// mock the check for the database to run the correct SQL statements for each database type
|
||||
$systemConfig = $this->getMock('\OC\SystemConfig');
|
||||
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$systemConfig->expects($this->once())
|
||||
->method('getValue')
|
||||
->with($this->equalTo('dbtype'),
|
||||
|
@ -133,7 +137,9 @@ class TestAllConfig extends \Test\TestCase {
|
|||
*/
|
||||
public function testSetUserValueWithPreConditionFailure() {
|
||||
// mock the check for the database to run the correct SQL statements for each database type
|
||||
$systemConfig = $this->getMock('\OC\SystemConfig');
|
||||
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$systemConfig->expects($this->once())
|
||||
->method('getValue')
|
||||
->with($this->equalTo('dbtype'),
|
||||
|
@ -394,7 +400,9 @@ class TestAllConfig extends \Test\TestCase {
|
|||
|
||||
public function testGetUsersForUserValue() {
|
||||
// mock the check for the database to run the correct SQL statements for each database type
|
||||
$systemConfig = $this->getMock('\OC\SystemConfig');
|
||||
$systemConfig = $this->getMockBuilder('\OC\SystemConfig')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$systemConfig->expects($this->once())
|
||||
->method('getValue')
|
||||
->with($this->equalTo('dbtype'),
|
||||
|
|
|
@ -38,7 +38,8 @@ class Server extends \Test\TestCase {
|
|||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
$this->server = new \OC\Server('');
|
||||
$config = new \OC\Config(\OC::$configDir);
|
||||
$this->server = new \OC\Server('', $config);
|
||||
}
|
||||
|
||||
public function dataTestQuery() {
|
||||
|
|
Loading…
Reference in New Issue