Merge pull request #31264 from nextcloud/backport/20766/stable21

[stable21] Consider only reminders with calendar data
pull/31551/head
blizzz 2022-03-21 15:52:42 +07:00 committed by GitHub
commit 4eb699179f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

@ -331,8 +331,11 @@ class Application extends App implements IBootstrap {
]);
/** @var CalDavBackend $calDavBackend */
$calDavBackend = $container->query(CalDavBackend::class);
$calDavBackend = $container->get(CalDavBackend::class);
$calDavBackend->purgeAllCachedEventsForSubscription($subscriptionData['id']);
/** @var ReminderBackend $calDavBackend */
$reminderBackend = $container->get(ReminderBackend::class);
$reminderBackend->cleanRemindersForCalendar((int) $subscriptionData['id']);
}
);

@ -68,8 +68,8 @@ class Backend {
$query->select(['cr.*', 'co.calendardata', 'c.displayname', 'c.principaluri'])
->from('calendar_reminders', 'cr')
->where($query->expr()->lte('cr.notification_date', $query->createNamedParameter($this->timeFactory->getTime())))
->leftJoin('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
->leftJoin('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
->join('cr', 'calendarobjects', 'co', $query->expr()->eq('cr.object_id', 'co.id'))
->join('cr', 'calendars', 'c', $query->expr()->eq('cr.calendar_id', 'c.id'));
$stmt = $query->execute();
return array_map(

@ -118,6 +118,10 @@ class ReminderService {
? stream_get_contents($reminder['calendardata'])
: $reminder['calendardata'];
if (!$calendarData) {
continue;
}
$vcalendar = $this->parseCalendarData($calendarData);
if (!$vcalendar) {
$this->backend->removeReminder($reminder['id']);
@ -191,6 +195,10 @@ class ReminderService {
? stream_get_contents($objectData['calendardata'])
: $objectData['calendardata'];
if (!$calendarData) {
return;
}
/** @var VObject\Component\VCalendar $vcalendar */
$vcalendar = $this->parseCalendarData($calendarData);
if (!$vcalendar) {