diff --git a/lib/Service/AttachmentService.php b/lib/Service/AttachmentService.php index 47606eaa10b..49a7fdae294 100644 --- a/lib/Service/AttachmentService.php +++ b/lib/Service/AttachmentService.php @@ -424,8 +424,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 3519b9f99b3..e57b29dc9c6 100644 --- a/lib/Service/DocumentService.php +++ b/lib/Service/DocumentService.php @@ -626,7 +626,7 @@ public function checkSharePermissions(string $shareToken, int $permission = Cons throw new NotFoundException(); } - if (($share->getPermissions() & $permission) === 0) { + if (($share->getPermissions() & $permission) === 0 || ($share->getNode()->getPermissions() & $permission) === 0) { throw new NotFoundException(); } }