summaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-06-06 10:28:10 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2016-06-06 12:38:20 +0200
commit911fd3ead4e8ef3451aabc4b1f0cd1c7fc106e44 (patch)
tree2b1093f1beee5e871809628774859d997bc67b00 /lib/private
parentc0a91ddca797c9821d3ce8771664b17ee588535f (diff)
downloadnextcloud-server-911fd3ead4e8ef3451aabc4b1f0cd1c7fc106e44.tar.gz
nextcloud-server-911fd3ead4e8ef3451aabc4b1f0cd1c7fc106e44.zip
Do not allow to store boolean configs, they behave unexpected on postgres
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/AllConfig.php9
-rw-r--r--lib/private/AppConfig.php2
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php
index 6e99e1ac268..e082cea3305 100644
--- a/lib/private/AllConfig.php
+++ b/lib/private/AllConfig.php
@@ -154,7 +154,7 @@ class AllConfig implements \OCP\IConfig {
*
* @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 $value the value that should be stored
+ * @param string|float|int $value the value that should be stored
*/
public function setAppValue($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 $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 $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
* @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) {
+ if (!is_int($value) && !is_float($value) && !is_string($value)) {
+ throw new \UnexpectedValueException('Only integers, floats and strings are allowed as value');
+ }
+
// TODO - FIXME
$this->fixDIInit();
diff --git a/lib/private/AppConfig.php b/lib/private/AppConfig.php
index 24542152ffc..f84c8a41f17 100644
--- a/lib/private/AppConfig.php
+++ b/lib/private/AppConfig.php
@@ -143,7 +143,7 @@ class AppConfig implements IAppConfig {
*
* @param string $app app
* @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
*/
public function setValue($app, $key, $value) {