aboutsummaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api/lib
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2024-08-02 18:05:37 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2024-08-20 23:10:09 +0200
commita3cd9632647173924cf838e8f90e6ab33f7f2b50 (patch)
treedda8c2a791834648eacdba1211732b10c53543f1 /apps/provisioning_api/lib
parent2b7d9c1c9db85581a4b37a5a5e483b64ddd60a4b (diff)
downloadnextcloud-server-a3cd9632647173924cf838e8f90e6ab33f7f2b50.tar.gz
nextcloud-server-a3cd9632647173924cf838e8f90e6ab33f7f2b50.zip
fix(ProvisioningAPI): set typed config values by via API
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/provisioning_api/lib')
-rw-r--r--apps/provisioning_api/lib/Controller/AppConfigController.php11
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/provisioning_api/lib/Controller/AppConfigController.php b/apps/provisioning_api/lib/Controller/AppConfigController.php
index 65b301245b3..2ea4602883c 100644
--- a/apps/provisioning_api/lib/Controller/AppConfigController.php
+++ b/apps/provisioning_api/lib/Controller/AppConfigController.php
@@ -126,8 +126,17 @@ class AppConfigController extends OCSController {
return new DataResponse(['data' => ['message' => $e->getMessage()]], Http::STATUS_FORBIDDEN);
}
+ $configDetails = $this->appConfig->getDetails($app, $key);
/** @psalm-suppress InternalMethod */
- $this->appConfig->setValueMixed($app, $key, $value);
+ match ($configDetails['type']) {
+ IAppConfig::VALUE_BOOL => $this->appConfig->setValueBool($app, $key, (bool)$value),
+ IAppConfig::VALUE_FLOAT => $this->appConfig->setValueFloat($app, $key, (float)$value),
+ IAppConfig::VALUE_INT => $this->appConfig->setValueInt($app, $key, (int)$value),
+ IAppConfig::VALUE_STRING => $this->appConfig->setValueString($app, $key, $value),
+ IAppConfig::VALUE_ARRAY => $this->appConfig->setValueArray($app, $key, \json_decode($value, true)),
+ default => $this->appConfig->setValueMixed($app, $key, $value),
+ };
+
return new DataResponse();
}