|
|
|
@ -38,7 +38,7 @@ namespace OC; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* This class is responsible for reading and writing config.php, the very basic |
|
|
|
|
* configuration file of owncloud. |
|
|
|
|
* configuration file of ownCloud. |
|
|
|
|
*/ |
|
|
|
|
class Config { |
|
|
|
|
// associative array key => value |
|
|
|
@ -63,7 +63,7 @@ class Config { |
|
|
|
|
* does not return the values. |
|
|
|
|
*/ |
|
|
|
|
public function getKeys() { |
|
|
|
|
return array_keys( $this->cache ); |
|
|
|
|
return array_keys($this->cache); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -75,8 +75,8 @@ class Config { |
|
|
|
|
* This function gets the value from config.php. If it does not exist, |
|
|
|
|
* $default will be returned. |
|
|
|
|
*/ |
|
|
|
|
public function getValue( $key, $default = null ) { |
|
|
|
|
if( array_key_exists( $key, $this->cache )) { |
|
|
|
|
public function getValue($key, $default = null) { |
|
|
|
|
if (isset($this->cache[$key])) { |
|
|
|
|
return $this->cache[$key]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -88,10 +88,10 @@ class Config { |
|
|
|
|
* @param string $key key |
|
|
|
|
* @param string $value value |
|
|
|
|
* |
|
|
|
|
* This function sets the value and writes the config.php. If the file can |
|
|
|
|
* not be written, false will be returned. |
|
|
|
|
* This function sets the value and writes the config.php. |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
public function setValue( $key, $value ) { |
|
|
|
|
public function setValue($key, $value) { |
|
|
|
|
// Add change |
|
|
|
|
$this->cache[$key] = $value; |
|
|
|
|
|
|
|
|
@ -103,13 +103,13 @@ class Config { |
|
|
|
|
* @brief Removes a key from the config |
|
|
|
|
* @param string $key key |
|
|
|
|
* |
|
|
|
|
* This function removes a key from the config.php. If owncloud has no |
|
|
|
|
* write access to config.php, the function will return false. |
|
|
|
|
* This function removes a key from the config.php. |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
public function deleteKey( $key ) { |
|
|
|
|
if( array_key_exists( $key, $this->cache )) { |
|
|
|
|
public function deleteKey($key) { |
|
|
|
|
if (isset($this->cache[$key])) { |
|
|
|
|
// Delete key from cache |
|
|
|
|
unset( $this->cache[$key] ); |
|
|
|
|
unset($this->cache[$key]); |
|
|
|
|
|
|
|
|
|
// Write changes |
|
|
|
|
$this->writeData(); |
|
|
|
@ -123,7 +123,7 @@ class Config { |
|
|
|
|
*/ |
|
|
|
|
private function readData() { |
|
|
|
|
// read all file in config dir ending by config.php |
|
|
|
|
$configFiles = glob( $this->configDir.'*.config.php'); |
|
|
|
|
$configFiles = glob($this->configDir.'*.config.php'); |
|
|
|
|
|
|
|
|
|
//Filter only regular files |
|
|
|
|
$configFiles = array_filter($configFiles, 'is_file'); |
|
|
|
@ -135,13 +135,13 @@ class Config { |
|
|
|
|
array_unshift($configFiles, $this->configFilename); |
|
|
|
|
|
|
|
|
|
//Include file and merge config |
|
|
|
|
foreach($configFiles as $file) { |
|
|
|
|
if( !file_exists( $file) ) { |
|
|
|
|
foreach ($configFiles as $file) { |
|
|
|
|
if (!file_exists($file)) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
unset($CONFIG); |
|
|
|
|
include $file; |
|
|
|
|
if( isset( $CONFIG ) && is_array( $CONFIG )) { |
|
|
|
|
if (isset($CONFIG) && is_array($CONFIG)) { |
|
|
|
|
$this->cache = array_merge($this->cache, $CONFIG); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -164,12 +164,12 @@ class Config { |
|
|
|
|
$content .= ";\n"; |
|
|
|
|
|
|
|
|
|
// Write the file |
|
|
|
|
$result=@file_put_contents( $this->configFilename, $content ); |
|
|
|
|
if(!$result) { |
|
|
|
|
$result = @file_put_contents( $this->configFilename, $content); |
|
|
|
|
if (!$result) { |
|
|
|
|
throw new HintException( |
|
|
|
|
"Can't write into config directory 'config'", |
|
|
|
|
'You can usually fix this by giving the webserver user write access' |
|
|
|
|
.' to the config directory in owncloud'); |
|
|
|
|
.' to the config directory in ownCloud'); |
|
|
|
|
} |
|
|
|
|
// Prevent others not to read the config |
|
|
|
|
@chmod($this->configFilename, 0640); |
|
|
|
|