fix(systemtags): catch empty nodes

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2025-10-08 10:47:41 +02:00 committed by John Molakvoæ
parent f6593a7464
commit bd04c26427

View file

@ -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;
}
}