Merge pull request #5547 from nextcloud/backport/5542/stable27

[stable27] fix(PermissionService#getPermissions): Catch exceptions from getBoard method
This commit is contained in:
Julius Härtl
2024-02-05 07:12:02 +01:00
committed by GitHub

View File

@@ -108,9 +108,15 @@ class PermissionService {
return $cached; return $cached;
} }
try {
$board = $this->getBoard($boardId); $board = $this->getBoard($boardId);
$owner = $this->userIsBoardOwner($boardId, $userId); $owner = $this->userIsBoardOwner($boardId, $userId);
$acls = $board->getDeletedAt() === 0 ? $this->aclMapper->findAll($boardId) : []; $acls = $board->getDeletedAt() === 0 ? $this->aclMapper->findAll($boardId) : [];
} catch (MultipleObjectsReturnedException|DoesNotExistException $e) {
$owner = false;
$acls = [];
}
$permissions = [ $permissions = [
Acl::PERMISSION_READ => $owner || $this->userCan($acls, Acl::PERMISSION_READ, $userId), Acl::PERMISSION_READ => $owner || $this->userCan($acls, Acl::PERMISSION_READ, $userId),
Acl::PERMISSION_EDIT => $owner || $this->userCan($acls, Acl::PERMISSION_EDIT, $userId), Acl::PERMISSION_EDIT => $owner || $this->userCan($acls, Acl::PERMISSION_EDIT, $userId),