diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-08-02 14:30:52 +0200 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-08-12 11:28:03 +0200 |
commit | cb1b366baf75da4c578bc534884eefa7f6b4b3d2 (patch) | |
tree | bdb367d502a6990c39165960a76d3268270162ef /apps/dav/lib/Storage | |
parent | 1a7acf061e26d938e2162f791afb262dc7c2b90d (diff) | |
download | nextcloud-server-cb1b366baf75da4c578bc534884eefa7f6b4b3d2.tar.gz nextcloud-server-cb1b366baf75da4c578bc534884eefa7f6b4b3d2.zip |
fix(dav): Ensure share properties are also set on public remote endpoint
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Diffstat (limited to 'apps/dav/lib/Storage')
-rw-r--r-- | apps/dav/lib/Storage/PublicShareWrapper.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/dav/lib/Storage/PublicShareWrapper.php b/apps/dav/lib/Storage/PublicShareWrapper.php new file mode 100644 index 00000000000..fb24abda9d0 --- /dev/null +++ b/apps/dav/lib/Storage/PublicShareWrapper.php @@ -0,0 +1,38 @@ +<?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\Share\IShare; + +class PublicShareWrapper extends Wrapper { + + private IShare $share; + + /** + * @param array $arguments ['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($arguments) { + parent::__construct($arguments); + $this->share = $arguments['share']; + } + + public function getShare(): IShare { + $storage = parent::getWrapperStorage(); + if (method_exists($storage, 'getShare')) { + /** @var \OCA\Files_Sharing\SharedStorage $storage */ + return $storage->getShare(); + } + + return $this->share; + } +} |