Browse Source

fix(systemtags): catch empty nodes

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
pull/55635/head
John Molakvoæ (skjnldsv) 5 days ago
committed by backportbot[bot]
parent
commit
680809042e
  1. 20
      apps/dav/lib/SystemTag/SystemTagPlugin.php

20
apps/dav/lib/SystemTag/SystemTagPlugin.php

@ -526,14 +526,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;
}
}
Loading…
Cancel
Save