Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions lib/private/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,23 @@
*/
class Config {
public const ENV_PREFIX = 'NC_';
public const CONF_WARNING = "
/*
* WARNING
*
* This file gets modified by automatic processes and all lines that are not
* active code (ie. comments) are lost during that process.
*
* If you want to document things with comments or use constants add your settings
* in a '<NAME>.config.php' file which will be included and rendered into this file.
*
* Example:
* <?php
* \$CONFIG = [];
*
* See also: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#multiple-merged-configuration-files
*/
";

protected array $cache = [];
protected array $envCache = [];
Expand Down Expand Up @@ -269,6 +286,7 @@ private function writeData(): void {

// Create a php file ...
$content = "<?php\n";
$content .= self::CONF_WARNING;
$content .= '$CONFIG = ';
$content .= var_export(self::trustSystemConfig($this->cache), true);
$content .= ";\n";
Expand Down
20 changes: 15 additions & 5 deletions tests/lib/ConfigTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ public function testSetValue(): void {
$this->assertSame('moo', $config->getValue('foo'));

$content = file_get_contents($this->configFile);
$expected = "<?php\n\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
$expected = "<?php\n";
$expected .= \OC\Config::CONF_WARNING;
$expected .= "\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
. " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
$this->assertEquals($expected, $content);

Expand All @@ -108,7 +110,9 @@ public function testSetValue(): void {

$content = file_get_contents($this->configFile);

$expected = "<?php\n\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
$expected = "<?php\n";
$expected .= \OC\Config::CONF_WARNING;
$expected .= "\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
. " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'bar' => 'red',\n 'apps' => \n "
. " array (\n 0 => 'files',\n 1 => 'gallery',\n ),\n);\n";
$this->assertEquals($expected, $content);
Expand Down Expand Up @@ -139,7 +143,9 @@ public function testSetValues(): void {
$this->assertSame(null, $config->getValue('not_exists'));

$content = file_get_contents($this->configFile);
$expected = "<?php\n\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
$expected = "<?php\n";
$expected .= \OC\Config::CONF_WARNING;
$expected .= "\$CONFIG = array (\n 'foo' => 'moo',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
. " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n);\n";
$this->assertEquals($expected, $content);
}
Expand All @@ -150,7 +156,9 @@ public function testDeleteKey(): void {
$this->assertSame('this_was_clearly_not_set_before', $config->getValue('foo', 'this_was_clearly_not_set_before'));
$content = file_get_contents($this->configFile);

$expected = "<?php\n\$CONFIG = array (\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
$expected = "<?php\n";
$expected .= \OC\Config::CONF_WARNING;
$expected .= "\$CONFIG = array (\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
. " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n";
$this->assertEquals($expected, $content);
}
Expand All @@ -170,7 +178,9 @@ public function testConfigMerge(): void {

// Write a new value to the config
$config->setValue('CoolWebsites', ['demo.owncloud.org', 'owncloud.org', 'owncloud.com']);
$expected = "<?php\n\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
$expected = "<?php\n";
$expected .= \OC\Config::CONF_WARNING;
$expected .= "\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n "
. " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n 'php53' => 'totallyOutdated',\n 'CoolWebsites' => \n array (\n "
. " 0 => 'demo.owncloud.org',\n 1 => 'owncloud.org',\n 2 => 'owncloud.com',\n ),\n);\n";
$this->assertEquals($expected, file_get_contents($this->configFile));
Expand Down
Loading