removed automatic .ini configuration file migration, closes #808
This commit is contained in:
parent
9beb176874
commit
c758eca0a4
|
@ -9,6 +9,7 @@
|
||||||
* ADDED: Google Cloud Storage backend support (#795)
|
* ADDED: Google Cloud Storage backend support (#795)
|
||||||
* CHANGED: Language selection cookie only transmitted over HTTPS (#472)
|
* CHANGED: Language selection cookie only transmitted over HTTPS (#472)
|
||||||
* CHANGED: Upgrading libraries to: random_compat 2.0.20
|
* CHANGED: Upgrading libraries to: random_compat 2.0.20
|
||||||
|
* CHANGED: Removed automatic `.ini` configuration file migration (#808)
|
||||||
* **1.3.5 (2021-04-05)**
|
* **1.3.5 (2021-04-05)**
|
||||||
* ADDED: Translation for Hebrew, Lithuanian, Indonesian and Catalan
|
* ADDED: Translation for Hebrew, Lithuanian, Indonesian and Catalan
|
||||||
* ADDED: Make the project info configurable (#681)
|
* ADDED: Make the project info configurable (#681)
|
||||||
|
|
|
@ -106,20 +106,8 @@ class Configuration
|
||||||
{
|
{
|
||||||
$config = array();
|
$config = array();
|
||||||
$basePath = (getenv('CONFIG_PATH') !== false ? getenv('CONFIG_PATH') : PATH . 'cfg') . DIRECTORY_SEPARATOR;
|
$basePath = (getenv('CONFIG_PATH') !== false ? getenv('CONFIG_PATH') : PATH . 'cfg') . DIRECTORY_SEPARATOR;
|
||||||
$configIni = $basePath . 'conf.ini';
|
|
||||||
$configFile = $basePath . 'conf.php';
|
$configFile = $basePath . 'conf.php';
|
||||||
|
|
||||||
// rename INI files to avoid configuration leakage
|
|
||||||
if (is_readable($configIni)) {
|
|
||||||
DataStore::prependRename($configIni, $configFile, ';');
|
|
||||||
|
|
||||||
// cleanup sample, too
|
|
||||||
$configIniSample = $configIni . '.sample';
|
|
||||||
if (is_readable($configIniSample)) {
|
|
||||||
DataStore::prependRename($configIniSample, $basePath . 'conf.sample.php', ';');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_readable($configFile)) {
|
if (is_readable($configFile)) {
|
||||||
$config = parse_ini_file($configFile, true);
|
$config = parse_ini_file($configFile, true);
|
||||||
foreach (array('main', 'model', 'model_options') as $section) {
|
foreach (array('main', 'model', 'model_options') as $section) {
|
||||||
|
|
|
@ -80,15 +80,14 @@ class DataStore extends AbstractPersistence
|
||||||
* @static
|
* @static
|
||||||
* @param string $srcFile
|
* @param string $srcFile
|
||||||
* @param string $destFile
|
* @param string $destFile
|
||||||
* @param string $prefix (optional)
|
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function prependRename($srcFile, $destFile, $prefix = '')
|
public static function prependRename($srcFile, $destFile)
|
||||||
{
|
{
|
||||||
// don't overwrite already converted file
|
// don't overwrite already converted file
|
||||||
if (!is_readable($destFile)) {
|
if (!is_readable($destFile)) {
|
||||||
$handle = fopen($srcFile, 'r', false, stream_context_create());
|
$handle = fopen($srcFile, 'r', false, stream_context_create());
|
||||||
file_put_contents($destFile, $prefix . self::PROTECTION_LINE . PHP_EOL);
|
file_put_contents($destFile, self::PROTECTION_LINE . PHP_EOL);
|
||||||
file_put_contents($destFile, $handle, FILE_APPEND);
|
file_put_contents($destFile, $handle, FILE_APPEND);
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
}
|
}
|
||||||
|
|
|
@ -147,44 +147,6 @@ class ConfigurationTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals('Database', $conf->getKey('class', 'model'), 'old db class gets renamed');
|
$this->assertEquals('Database', $conf->getKey('class', 'model'), 'old db class gets renamed');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleConfigFileRename()
|
|
||||||
{
|
|
||||||
$options = $this->_options;
|
|
||||||
Helper::createIniFile(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini.sample', $options);
|
|
||||||
|
|
||||||
$options['main']['opendiscussion'] = true;
|
|
||||||
$options['main']['fileupload'] = true;
|
|
||||||
$options['main']['template'] = 'darkstrap';
|
|
||||||
Helper::createIniFile(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', $options);
|
|
||||||
|
|
||||||
$conf = new Configuration;
|
|
||||||
$this->assertFileExists(CONF, 'old configuration file gets converted');
|
|
||||||
$this->assertFileNotExists(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', 'old configuration file gets removed');
|
|
||||||
$this->assertFileNotExists(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini.sample', 'old configuration sample file gets removed');
|
|
||||||
$this->assertTrue(
|
|
||||||
$conf->getKey('opendiscussion') &&
|
|
||||||
$conf->getKey('fileupload') &&
|
|
||||||
$conf->getKey('template') === 'darkstrap',
|
|
||||||
'configuration values get converted'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenameIniSample()
|
|
||||||
{
|
|
||||||
$iniSample = PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini.sample';
|
|
||||||
|
|
||||||
Helper::createIniFile(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', $this->_options);
|
|
||||||
if (is_file(CONF)) {
|
|
||||||
unlink(CONF);
|
|
||||||
}
|
|
||||||
rename(CONF_SAMPLE, $iniSample);
|
|
||||||
new Configuration;
|
|
||||||
$this->assertFileNotExists($iniSample, 'old sample file gets removed');
|
|
||||||
$this->assertFileExists(CONF_SAMPLE, 'new sample file gets created');
|
|
||||||
$this->assertFileExists(CONF, 'old configuration file gets converted');
|
|
||||||
$this->assertFileNotExists(PATH . 'cfg' . DIRECTORY_SEPARATOR . 'conf.ini', 'old configuration file gets removed');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testConfigPath()
|
public function testConfigPath()
|
||||||
{
|
{
|
||||||
// setup
|
// setup
|
||||||
|
@ -204,29 +166,4 @@ class ConfigurationTest extends PHPUnit_Framework_TestCase
|
||||||
}
|
}
|
||||||
putenv('CONFIG_PATH');
|
putenv('CONFIG_PATH');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testConfigPathIni()
|
|
||||||
{
|
|
||||||
// setup
|
|
||||||
$configFile = $this->_path . DIRECTORY_SEPARATOR . 'conf.ini';
|
|
||||||
$configMigrated = $this->_path . DIRECTORY_SEPARATOR . 'conf.php';
|
|
||||||
$options = $this->_options;
|
|
||||||
$options['main']['name'] = 'OtherBin';
|
|
||||||
Helper::createIniFile($configFile, $options);
|
|
||||||
$this->assertFileNotExists(CONF, 'configuration in the default location is non existing');
|
|
||||||
|
|
||||||
// test
|
|
||||||
putenv('CONFIG_PATH=' . $this->_path);
|
|
||||||
$conf = new Configuration;
|
|
||||||
$this->assertEquals('OtherBin', $conf->getKey('name'), 'changing config path is supported for ini files as well');
|
|
||||||
$this->assertFileExists($configMigrated, 'old configuration file gets converted');
|
|
||||||
$this->assertFileNotExists($configFile, 'old configuration file gets removed');
|
|
||||||
$this->assertFileNotExists(CONF, 'configuration is not created in the default location');
|
|
||||||
|
|
||||||
// cleanup environment
|
|
||||||
if (is_file($configFile)) {
|
|
||||||
unlink($configFile);
|
|
||||||
}
|
|
||||||
putenv('CONFIG_PATH');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue