Skip to content

Commit ed746b9

Browse files
authored
Merge pull request #31263 from nextcloud/backport/20766/stable22
[stable22] Consider only reminders with calendar data
2 parents e2e7427 + 1503798 commit ed746b9

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

apps/dav/lib/AppInfo/Application.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
use OCA\DAV\CalDAV\BirthdayService;
3939
use OCA\DAV\CalDAV\CalDavBackend;
4040
use OCA\DAV\CalDAV\CalendarManager;
41+
use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
4142
use OCA\DAV\CalDAV\Reminder\NotificationProvider\AudioProvider;
4243
use OCA\DAV\CalDAV\Reminder\NotificationProvider\EmailProvider;
4344
use OCA\DAV\CalDAV\Reminder\NotificationProvider\PushProvider;
@@ -301,8 +302,11 @@ function (GenericEvent $event) use ($container, $serverContainer) {
301302
]);
302303

303304
/** @var CalDavBackend $calDavBackend */
304-
$calDavBackend = $container->query(CalDavBackend::class);
305+
$calDavBackend = $container->get(CalDavBackend::class);
305306
$calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
307+
/** @var ReminderBackend $calDavBackend */
308+
$reminderBackend = $container->get(ReminderBackend::class);
309+
$reminderBackend->cleanRemindersForCalendar((int) $subscriptionData['id']);
306310
}
307311
);
308312

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)