diff options
author | kesselb <mail@danielkesselberg.de> | 2021-06-15 14:21:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-15 14:21:17 +0200 |
commit | fd59fff2236a9a49aa067fec34351e68ce54ea0d (patch) | |
tree | 10d905e8753393dfa7e1a307097a0511dbf33c8d | |
parent | cc4e6630db13effc85383320ecd0b7487ec1475a (diff) | |
parent | 09ad1c4e2be3f96c759106e8b1ad487cb92c931e (diff) | |
download | nextcloud-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.php | 11 |
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 = []; |