fixing support for pre renaming configuration file format, resolves #37

This commit is contained in:
El RIDO
2016-07-13 09:41:45 +02:00
parent 8f2d43722b
commit 4d10fd9690
5 changed files with 85 additions and 12 deletions

View File

@@ -90,7 +90,7 @@ class configuration
if (is_readable($configFile))
{
$config = parse_ini_file($configFile, true);
foreach (array('main', 'model') as $section) {
foreach (array('main', 'model', 'model_options') as $section) {
if (!array_key_exists($section, $config)) {
throw new Exception(i18n::_('PrivateBin requires configuration section [%s] to be present in configuration file.', $section), 2);
}
@@ -110,7 +110,12 @@ class configuration
continue;
}
// provide different defaults for database model
elseif ($section == 'model_options' && $this->_configuration['model']['class'] == 'privatebin_db')
elseif (
$section == 'model_options' && in_array(
$this->_configuration['model']['class'],
array('privatebin_db', 'zerobin_db')
)
)
{
$values = array(
'dsn' => 'sqlite:' . PATH . 'data/db.sq3',
@@ -180,6 +185,12 @@ class configuration
}
}
// support for old config file format, before the fork was renamed
$this->_configuration['model']['class'] = str_replace(
'zerobin_', 'privatebin_',
$this->_configuration['model']['class']
);
// ensure a valid expire default key is set
if (!array_key_exists($this->_configuration['expire']['default'], $this->_configuration['expire_options']))
{

View File

@@ -61,13 +61,8 @@ class model
{
if ($this->_store === null)
{
// added option to support old config file format
$model = str_replace(
'zerobin_', 'privatebin_',
$this->_conf->getKey('class', 'model')
);
$this->_store = forward_static_call(
array($model, 'getInstance'),
array($this->_conf->getKey('class', 'model'), 'getInstance'),
$this->_conf->getSection('model_options')
);
}

View File

@@ -134,6 +134,12 @@ class privatebin_db extends privatebin_abstract
self::_upgradeDatabase($db_version);
}
}
else
{
throw new Exception(
'Missing configuration for key dsn, usr, pwd or opt in the section model_options, please check your configuration file', 6
);
}
}
return self::$_instance;