diff --git a/lib/Service/AttachmentService.php b/lib/Service/AttachmentService.php index 51f5acca1f1..6e42cd26c5f 100644 --- a/lib/Service/AttachmentService.php +++ b/lib/Service/AttachmentService.php @@ -393,8 +393,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 84fe079083b..16224939a5a 100644 --- a/lib/Service/DocumentService.php +++ b/lib/Service/DocumentService.php @@ -614,7 +614,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(); } }