diff --git a/lib/Service/AttachmentService.php b/lib/Service/AttachmentService.php index b47443de38f..5b0257c815b 100644 --- a/lib/Service/AttachmentService.php +++ b/lib/Service/AttachmentService.php @@ -411,8 +411,9 @@ private function hasUpdatePermissions(string $shareToken): bool { [IShare::TYPE_LINK, IShare::TYPE_EMAIL, IShare::TYPE_ROOM], true ) - && $share->getPermissions() & Constants::PERMISSION_UPDATE); - } catch (ShareNotFound $e) { + && $share->getPermissions() & Constants::PERMISSION_UPDATE + && $share->getNode()->getPermissions() & Constants::PERMISSION_UPDATE); + } catch (ShareNotFound|NotFoundException $e) { return false; } } diff --git a/lib/Service/DocumentService.php b/lib/Service/DocumentService.php index 2bddccf5b9a..2606cf1dc70 100644 --- a/lib/Service/DocumentService.php +++ b/lib/Service/DocumentService.php @@ -588,7 +588,7 @@ public function checkSharePermissions(string $shareToken, $permission = Constant throw new NotFoundException(); } - if (($share->getPermissions() & $permission) === 0) { + if (($share->getPermissions() & $permission) === 0 || ($share->getNode()->getPermissions() & $permission) === 0) { throw new NotFoundException(); } }