Check that provided class implements IStorage in StorageManager::setBackend
- Add notice in admin if setting value change failed - Add notice in console if setting value change failed
This commit is contained in:
parent
f225a6c51a
commit
7e2e2f425e
|
@ -1200,7 +1200,9 @@ function admin_page_site_post(App $a)
|
||||||
* @var $storagebackend \Friendica\Model\Storage\IStorage
|
* @var $storagebackend \Friendica\Model\Storage\IStorage
|
||||||
*/
|
*/
|
||||||
$storagebackend = Strings::escapeTags(trim(defaults($_POST, 'storagebackend', '')));
|
$storagebackend = Strings::escapeTags(trim(defaults($_POST, 'storagebackend', '')));
|
||||||
StorageManager::setBackend($storagebackend);
|
if (!StorageManager::setBackend($storagebackend)) {
|
||||||
|
info(L10n::t('Invalid storage backend setting value.'));
|
||||||
|
}
|
||||||
|
|
||||||
// save storage backend form
|
// save storage backend form
|
||||||
if (!is_null($storagebackend) && $storagebackend != "") {
|
if (!is_null($storagebackend) && $storagebackend != "") {
|
||||||
|
|
|
@ -106,7 +106,11 @@ HELP;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageManager::setBackend($class);
|
if (!StorageManager::setBackend($class)) {
|
||||||
|
$this->out($class . ' is not a valid backend storage class.');
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,12 +54,18 @@ class StorageManager
|
||||||
* @brief Set current storage backend class
|
* @brief Set current storage backend class
|
||||||
*
|
*
|
||||||
* @param string $class Backend class name
|
* @param string $class Backend class name
|
||||||
|
* @return bool
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public static function setBackend($class)
|
public static function setBackend($class)
|
||||||
{
|
{
|
||||||
/// @todo Check that $class implements IStorage
|
if (!in_array('Friendica\Model\Storage\IStorage', class_implements($class))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Config::set('storage', 'class', $class);
|
Config::set('storage', 'class', $class);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user