Do not allow to store boolean configs, they behave unexpected on postgres
This commit is contained in:
parent
c0a91ddca7
commit
911fd3ead4
|
@ -154,7 +154,7 @@ class AllConfig implements \OCP\IConfig {
|
||||||
*
|
*
|
||||||
* @param string $appName the appName that we want to store the value under
|
* @param string $appName the appName that we want to store the value under
|
||||||
* @param string $key the key of the value, under which will be saved
|
* @param string $key the key of the value, under which will be saved
|
||||||
* @param string $value the value that should be stored
|
* @param string|float|int $value the value that should be stored
|
||||||
*/
|
*/
|
||||||
public function setAppValue($appName, $key, $value) {
|
public function setAppValue($appName, $key, $value) {
|
||||||
\OC::$server->getAppConfig()->setValue($appName, $key, $value);
|
\OC::$server->getAppConfig()->setValue($appName, $key, $value);
|
||||||
|
@ -198,11 +198,16 @@ class AllConfig implements \OCP\IConfig {
|
||||||
* @param string $userId the userId of the user that we want to store the value under
|
* @param string $userId the userId of the user that we want to store the value under
|
||||||
* @param string $appName the appName that we want to store the value under
|
* @param string $appName the appName that we want to store the value under
|
||||||
* @param string $key the key under which the value is being stored
|
* @param string $key the key under which the value is being stored
|
||||||
* @param string $value the value that you want to store
|
* @param string|float|int $value the value that you want to store
|
||||||
* @param string $preCondition only update if the config value was previously the value passed as $preCondition
|
* @param string $preCondition only update if the config value was previously the value passed as $preCondition
|
||||||
* @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
|
* @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
|
||||||
|
* @throws \UnexpectedValueException when trying to store an unexpected value
|
||||||
*/
|
*/
|
||||||
public function setUserValue($userId, $appName, $key, $value, $preCondition = null) {
|
public function setUserValue($userId, $appName, $key, $value, $preCondition = null) {
|
||||||
|
if (!is_int($value) && !is_float($value) && !is_string($value)) {
|
||||||
|
throw new \UnexpectedValueException('Only integers, floats and strings are allowed as value');
|
||||||
|
}
|
||||||
|
|
||||||
// TODO - FIXME
|
// TODO - FIXME
|
||||||
$this->fixDIInit();
|
$this->fixDIInit();
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ class AppConfig implements IAppConfig {
|
||||||
*
|
*
|
||||||
* @param string $app app
|
* @param string $app app
|
||||||
* @param string $key key
|
* @param string $key key
|
||||||
* @param string $value value
|
* @param string|float|int $value value
|
||||||
* @return bool True if the value was inserted or updated, false if the value was the same
|
* @return bool True if the value was inserted or updated, false if the value was the same
|
||||||
*/
|
*/
|
||||||
public function setValue($app, $key, $value) {
|
public function setValue($app, $key, $value) {
|
||||||
|
|
|
@ -88,7 +88,7 @@ interface IAppConfig {
|
||||||
* sets a value in the appconfig
|
* sets a value in the appconfig
|
||||||
* @param string $app app
|
* @param string $app app
|
||||||
* @param string $key key
|
* @param string $key key
|
||||||
* @param string $value value
|
* @param string|float|int $value value
|
||||||
* @deprecated 8.0.0 use method setAppValue of \OCP\IConfig
|
* @deprecated 8.0.0 use method setAppValue of \OCP\IConfig
|
||||||
*
|
*
|
||||||
* Sets a value. If the key did not exist before it will be created.
|
* Sets a value. If the key did not exist before it will be created.
|
||||||
|
|
|
@ -104,7 +104,7 @@ interface IConfig {
|
||||||
* Writes a new app wide value
|
* Writes a new app wide value
|
||||||
*
|
*
|
||||||
* @param string $appName the appName that we want to store the value under
|
* @param string $appName the appName that we want to store the value under
|
||||||
* @param string $key the key of the value, under which will be saved
|
* @param string|float|int $key the key of the value, under which will be saved
|
||||||
* @param string $value the value that should be stored
|
* @param string $value the value that should be stored
|
||||||
* @return void
|
* @return void
|
||||||
* @since 6.0.0
|
* @since 6.0.0
|
||||||
|
@ -149,6 +149,7 @@ interface IConfig {
|
||||||
* @param string $value the value that you want to store
|
* @param string $value the value that you want to store
|
||||||
* @param string $preCondition only update if the config value was previously the value passed as $preCondition
|
* @param string $preCondition only update if the config value was previously the value passed as $preCondition
|
||||||
* @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
|
* @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met
|
||||||
|
* @throws \UnexpectedValueException when trying to store an unexpected value
|
||||||
* @since 6.0.0 - parameter $precondition was added in 8.0.0
|
* @since 6.0.0 - parameter $precondition was added in 8.0.0
|
||||||
*/
|
*/
|
||||||
public function setUserValue($userId, $appName, $key, $value, $preCondition = null);
|
public function setUserValue($userId, $appName, $key, $value, $preCondition = null);
|
||||||
|
|
|
@ -123,6 +123,25 @@ class AllConfigTest extends \Test\TestCase {
|
||||||
$config->deleteUserValue('userPreCond', 'appPreCond', 'keyPreCond');
|
$config->deleteUserValue('userPreCond', 'appPreCond', 'keyPreCond');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dataSetUserValueUnexpectedValue() {
|
||||||
|
return [
|
||||||
|
[true],
|
||||||
|
[false],
|
||||||
|
[null],
|
||||||
|
[new \stdClass()],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider dataSetUserValueUnexpectedValue
|
||||||
|
* @param mixed $value
|
||||||
|
* @expectedException \UnexpectedValueException
|
||||||
|
*/
|
||||||
|
public function testSetUserValueUnexpectedValue($value) {
|
||||||
|
$config = $this->getConfig();
|
||||||
|
$config->setUserValue('userSetBool', 'appSetBool', 'keySetBool', $value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \OCP\PreConditionNotMetException
|
* @expectedException \OCP\PreConditionNotMetException
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue