Skip to content

Commit 6e0101b

Browse files
Merge pull request #20766 from nextcloud/bug/fix-reminders-with-empty-calendar-data
Consider only reminders with calendar data
2 parents 280cc47 + 22f8c42 commit 6e0101b

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

apps/dav/lib/AppInfo/Application.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
use OCA\DAV\CalDAV\CalDavBackend;
4040
use OCA\DAV\CalDAV\CalendarManager;
4141
use OCA\DAV\CalDAV\CalendarProvider;
42+
use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
4243
use OCA\DAV\CalDAV\Reminder\NotificationProvider\AudioProvider;
4344
use OCA\DAV\CalDAV\Reminder\NotificationProvider\EmailProvider;
4445
use OCA\DAV\CalDAV\Reminder\NotificationProvider\PushProvider;
@@ -306,6 +307,9 @@ function (GenericEvent $event) use ($container, $serverContainer) {
306307
/** @var CalDavBackend $calDavBackend */
307308
$calDavBackend = $container->query(CalDavBackend::class);
308309
$calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
310+
/** @var ReminderBackend $calDavBackend */
311+
$reminderBackend = $container->query(ReminderBackend::class);
312+
$reminderBackend->cleanRemindersForCalendar($subscriptionData['id']);
309313
}
310314
);
311315

apps/dav/lib/CalDAV/Reminder/Backend.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ public function getRemindersToProcess():array {
6767
$query->select(['cr.*', 'co.calendardata', 'c.displayname', 'c.principaluri'])
6868
->from('calendar_reminders', 'cr')
6969
->where($query->expr()->lte('cr.notification_date', $query->createNamedParameter($this->timeFactory->getTime())))
70-
->leftJoin('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
71-
->leftJoin('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
70+
->join('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
71+
->join('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
7272
$stmt = $query->execute();
7373

7474
return array_map(

apps/dav/lib/CalDAV/Reminder/ReminderService.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ public function processReminders():void {
119119
? stream_get_contents($reminder['calendardata'])
120120
: $reminder['calendardata'];
121121

122+
if (!$calendarData) {
123+
continue;
124+
}
125+
122126
$vcalendar = $this->parseCalendarData($calendarData);
123127
if (!$vcalendar) {
124128
$this->backend->removeReminder($reminder['id']);
@@ -168,6 +172,10 @@ public function onCalendarObjectCreate(array $objectData):void {
168172
? stream_get_contents($objectData['calendardata'])
169173
: $objectData['calendardata'];
170174

175+
if (!$calendarData) {
176+
return;
177+
}
178+
171179
/** @var VObject\Component\VCalendar $vcalendar */
172180
$vcalendar = $this->parseCalendarData($calendarData);
173181
if (!$vcalendar) {

0 commit comments

Comments
 (0)