summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-07-15 14:52:04 +0200
committerCarl Schwan <carl@carlschwan.eu>2022-07-28 16:54:13 +0200
commitab1a20522b1b2730398869a764f672175a1abcb8 (patch)
tree03786fe4046a451a53ecb58336ee965300161914 /apps/files_sharing/lib
parentbbb5043c07923c8e73f687f42465d246292d207d (diff)
downloadnextcloud-server-ab1a20522b1b2730398869a764f672175a1abcb8.tar.gz
nextcloud-server-ab1a20522b1b2730398869a764f672175a1abcb8.zip
Enforcing permission during resharing
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'apps/files_sharing/lib')
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php17
1 files changed, 9 insertions, 8 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index c6fd5e74a39..c72fd8ba8af 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -524,6 +524,15 @@ class ShareAPIController extends OCSController {
$permissions &= ~($permissions & ~$node->getPermissions());
}
+ if ($share->getNode()->getStorage()->instanceOfStorage(SharedStorage::class)) {
+ /** @var \OCA\Files_Sharing\SharedStorage $storage */
+ $inheritedAttributes = $share->getNode()->getStorage()->getShare()->getAttributes();
+ if ($inheritedAttributes !== null && $inheritedAttributes->getAttribute('permissions', 'download') === false) {
+ $share->setHideDownload(true);
+ }
+ }
+
+
if ($shareType === IShare::TYPE_USER) {
// Valid user is required to share
if ($shareWith === null || !$this->userManager->userExists($shareWith)) {
@@ -550,14 +559,6 @@ class ShareAPIController extends OCSController {
throw new OCSNotFoundException($this->l->t('Public link sharing is disabled by the administrator'));
}
- if ($share->getNode()->getStorage()->instanceOfStorage(SharedStorage::class)) {
- /** @var \OCA\Files_Sharing\SharedStorage $storage */
- $inheritedAttributes = $share->getNode()->getStorage()->getShare()->getAttributes();
- if ($inheritedAttributes !== null && $inheritedAttributes->getAttribute('permissions', 'download') === false) {
- $share->setHideDownload(true);
- }
- }
-
if ($publicUpload === 'true') {
// Check if public upload is allowed
if (!$this->shareManager->shareApiLinkAllowPublicUpload()) {