aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-08-25 20:56:51 +0200
committerLukas Reschke <lukas@owncloud.com>2015-08-25 20:56:51 +0200
commite2bd026b2ed4aa0bebc20d3d9cc8defb0ce96a77 (patch)
tree5b5e2f2c744cb541dccea01320390c304d3154ca
parent840a2a7788a367b075ea4e07d7dc4adc4a4fa2ce (diff)
parent63218ec098655f9d7630b16394818746736d2f77 (diff)
downloadnextcloud-server-e2bd026b2ed4aa0bebc20d3d9cc8defb0ce96a77.tar.gz
nextcloud-server-e2bd026b2ed4aa0bebc20d3d9cc8defb0ce96a77.zip
Merge pull request #18558 from owncloud/ext-objectstore
Prevent objectstore being set from client side
-rw-r--r--apps/files_external/controller/storagescontroller.php10
-rw-r--r--apps/files_external/service/storagesservice.php8
2 files changed, 16 insertions, 2 deletions
diff --git a/apps/files_external/controller/storagescontroller.php b/apps/files_external/controller/storagescontroller.php
index 3d91af8bd8f..613f22c0331 100644
--- a/apps/files_external/controller/storagescontroller.php
+++ b/apps/files_external/controller/storagescontroller.php
@@ -138,6 +138,16 @@ abstract class StoragesController extends Controller {
);
}
+ if ($storage->getBackendOption('objectstore')) {
+ // objectstore must not be sent from client side
+ return new DataResponse(
+ array(
+ 'message' => (string)$this->l10n->t('Objectstore forbidden')
+ ),
+ Http::STATUS_UNPROCESSABLE_ENTITY
+ );
+ }
+
/** @var Backend */
$backend = $storage->getBackend();
/** @var AuthMechanism */
diff --git a/apps/files_external/service/storagesservice.php b/apps/files_external/service/storagesservice.php
index 3e2152741e5..947e544d88f 100644
--- a/apps/files_external/service/storagesservice.php
+++ b/apps/files_external/service/storagesservice.php
@@ -472,10 +472,14 @@ abstract class StoragesService {
if (!isset($allStorages[$id])) {
throw new NotFoundException('Storage with id "' . $id . '" not found');
}
-
$oldStorage = $allStorages[$id];
- $allStorages[$id] = $updatedStorage;
+ // ensure objectstore is persistent
+ if ($objectstore = $oldStorage->getBackendOption('objectstore')) {
+ $updatedStorage->setBackendOption('objectstore', $objectstore);
+ }
+
+ $allStorages[$id] = $updatedStorage;
$this->writeConfig($allStorages);
$this->triggerChangeHooks($oldStorage, $updatedStorage);