summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkesselb <mail@danielkesselberg.de>2021-06-15 14:21:17 +0200
committerGitHub <noreply@github.com>2021-06-15 14:21:17 +0200
commitfd59fff2236a9a49aa067fec34351e68ce54ea0d (patch)
tree10d905e8753393dfa7e1a307097a0511dbf33c8d
parentcc4e6630db13effc85383320ecd0b7487ec1475a (diff)
parent09ad1c4e2be3f96c759106e8b1ad487cb92c931e (diff)
downloadnextcloud-server-fd59fff2236a9a49aa067fec34351e68ce54ea0d.tar.gz
nextcloud-server-fd59fff2236a9a49aa067fec34351e68ce54ea0d.zip
Merge pull request #27508 from nextcloud/fix/noid/caldav-trash-filter-deleted-calendar
Skip deleted calendar objects of deleted calendars
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php11
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 4bb75e3431a..5f0c1bf3c48 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -1098,6 +1098,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
return $result;
}
+ /**
+ * Return all deleted calendar objects by the given principal that are not
+ * in deleted calendars.
+ *
+ * @param string $principalUri
+ * @return array
+ * @throws \OCP\DB\Exception
+ */
public function getDeletedCalendarObjectsByPrincipal(string $principalUri): array {
$query = $this->db->getQueryBuilder();
$query->select(['co.id', 'co.uri', 'co.lastmodified', 'co.etag', 'co.calendarid', 'co.size', 'co.componenttype', 'co.classification', 'co.deleted_at'])
@@ -1105,7 +1113,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
->from('calendarobjects', 'co')
->join('co', 'calendars', 'c', $query->expr()->eq('c.id', 'co.calendarid', IQueryBuilder::PARAM_INT))
->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri)))
- ->andWhere($query->expr()->isNotNull('co.deleted_at'));
+ ->andWhere($query->expr()->isNotNull('co.deleted_at'))
+ ->andWhere($query->expr()->isNull('c.deleted_at'));
$stmt = $query->executeQuery();
$result = [];