diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php index 6be3e8bd1a2..eaf3a4d8143 100644 --- a/apps/dav/lib/SystemTag/SystemTagPlugin.php +++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php @@ -539,14 +539,24 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin { private function canUpdateTagForFileIds(array $fileIds): bool { $user = $this->userSession->getUser(); $userFolder = $this->rootFolder->getUserFolder($user->getUID()); + foreach ($fileIds as $fileId) { - $nodes = $userFolder->getById((int)$fileId); - foreach ($nodes as $node) { - if (($node->getPermissions() & Constants::PERMISSION_UPDATE) === Constants::PERMISSION_UPDATE) { - return true; + try { + $nodes = $userFolder->getById((int)$fileId); + if (empty($nodes)) { + return false; } + + foreach ($nodes as $node) { + if (($node->getPermissions() & Constants::PERMISSION_UPDATE) !== Constants::PERMISSION_UPDATE) { + return false; + } + } + } catch (\Exception $e) { + return false; } } - return false; + + return true; } }