aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Storage
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/lib/Storage')
-rw-r--r--apps/dav/lib/Storage/PublicOwnerWrapper.php20
-rw-r--r--apps/dav/lib/Storage/PublicShareWrapper.php39
2 files changed, 48 insertions, 11 deletions
diff --git a/apps/dav/lib/Storage/PublicOwnerWrapper.php b/apps/dav/lib/Storage/PublicOwnerWrapper.php
index 6523c4c7cad..a0f1607d971 100644
--- a/apps/dav/lib/Storage/PublicOwnerWrapper.php
+++ b/apps/dav/lib/Storage/PublicOwnerWrapper.php
@@ -12,27 +12,25 @@ use OC\Files\Storage\Wrapper\Wrapper;
class PublicOwnerWrapper extends Wrapper {
- /** @var string */
- private $owner;
+ private string $owner;
/**
- * @param array $arguments ['storage' => $storage, 'owner' => $owner]
+ * @param array $parameters ['storage' => $storage, 'owner' => $owner]
*
* $storage: The storage the permissions mask should be applied on
* $owner: The owner to use in case no owner is found
*/
- public function __construct($arguments) {
- parent::__construct($arguments);
- $this->owner = $arguments['owner'];
+ public function __construct(array $parameters) {
+ parent::__construct($parameters);
+ $this->owner = $parameters['owner'];
}
- public function getOwner($path) {
+ public function getOwner(string $path): string|false {
$owner = parent::getOwner($path);
-
- if ($owner === null || $owner === false) {
- return $this->owner;
+ if ($owner !== false) {
+ return $owner;
}
- return $owner;
+ return $this->owner;
}
}
diff --git a/apps/dav/lib/Storage/PublicShareWrapper.php b/apps/dav/lib/Storage/PublicShareWrapper.php
new file mode 100644
index 00000000000..fb0db4dca4c
--- /dev/null
+++ b/apps/dav/lib/Storage/PublicShareWrapper.php
@@ -0,0 +1,39 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Storage;
+
+use OC\Files\Storage\Wrapper\Wrapper;
+use OCP\Files\Storage\ISharedStorage;
+use OCP\Share\IShare;
+
+class PublicShareWrapper extends Wrapper implements ISharedStorage {
+
+ private IShare $share;
+
+ /**
+ * @param array $parameters ['storage' => $storage, 'share' => $share]
+ *
+ * $storage: The storage the permissions mask should be applied on
+ * $share: The share to use in case no share is found
+ */
+ public function __construct(array $parameters) {
+ parent::__construct($parameters);
+ $this->share = $parameters['share'];
+ }
+
+ public function getShare(): IShare {
+ $storage = parent::getWrapperStorage();
+ if (method_exists($storage, 'getShare')) {
+ /** @var ISharedStorage $storage */
+ return $storage->getShare();
+ }
+
+ return $this->share;
+ }
+}