From ffa6d74440ef87d3ed7772860ca777e0ccb7a841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Tue, 6 Oct 2020 08:17:46 +0200 Subject: [PATCH] Also exclude deleted items from calendar boards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Db/BoardMapper.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Db/BoardMapper.php b/lib/Db/BoardMapper.php index 49cfebb88..72ac5b4ec 100644 --- a/lib/Db/BoardMapper.php +++ b/lib/Db/BoardMapper.php @@ -97,13 +97,13 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { // FIXME: One moving to QBMapper we should allow filtering the boards probably by method chaining for additional where clauses $sql = 'SELECT id, title, owner, color, archived, deleted_at, 0 as shared, last_modified FROM `*PREFIX*deck_boards` WHERE owner = ? AND last_modified > ?'; if (!$includeArchived) { - $sql .= ' AND NOT archived'; + $sql .= ' AND NOT archived AND deleted_at = 0'; } $sql .= ' UNION ' . 'SELECT boards.id, title, owner, color, archived, deleted_at, 1 as shared, last_modified FROM `*PREFIX*deck_boards` as boards ' . 'JOIN `*PREFIX*deck_board_acl` as acl ON boards.id=acl.board_id WHERE acl.participant=? AND acl.type=? AND boards.owner != ? AND last_modified > ?'; if (!$includeArchived) { - $sql .= ' AND NOT archived'; + $sql .= ' AND NOT archived AND deleted_at = 0'; } $entries = $this->findEntities($sql, [$userId, $since, $userId, Acl::PERMISSION_TYPE_USER, $userId, $since], $limit, $offset); /* @var Board $entry */ @@ -142,7 +142,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { } $sql .= ')'; if (!$includeArchived) { - $sql .= ' AND NOT archived'; + $sql .= ' AND NOT archived AND deleted_at = 0'; } $entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_GROUP], $groups), $limit, $offset); /* @var Board $entry */ @@ -174,7 +174,7 @@ class BoardMapper extends DeckMapper implements IPermissionMapper { } $sql .= ')'; if (!$includeArchived) { - $sql .= ' AND NOT archived'; + $sql .= ' AND NOT archived AND deleted_at = 0'; } $entries = $this->findEntities($sql, array_merge([$userId, Acl::PERMISSION_TYPE_CIRCLE], $circles), $limit, $offset); /* @var Board $entry */