fix: disable both iTip and iMip messages

Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
pull/49778/head
SebastianKrupinski 2024-11-26 19:52:01 +07:00
parent f95f9a2eca
commit e6657a03d1
4 changed files with 2 additions and 27 deletions

@ -133,14 +133,6 @@ class IMipPlugin extends SabreIMipPlugin {
*/
public function schedule(Message $iTipMessage) {
// do not send imip messages if external system already did
/** @psalm-suppress UndefinedPropertyFetch */
if ($iTipMessage->message?->VEVENT?->{'X-NC-DISABLE-SCHEDULING'}?->getValue() === 'true') {
if (!$iTipMessage->scheduleStatus) {
$iTipMessage->scheduleStatus = '1.0;We got the message, but iMip messages are disabled for this event';
}
return;
}
// Not sending any emails if the system considers the update insignificant
if (!$iTipMessage->significantChange) {
if (!$iTipMessage->scheduleStatus) {

@ -1,4 +1,5 @@
<?php
/**
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
* @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>

@ -783,23 +783,4 @@ class IMipPluginTest extends TestCase {
$this->plugin->schedule($message);
$this->assertEquals('1.1', $message->getScheduleStatus());
}
public function testImipDisabledForEvent(): void {
// construct iTip message with event and attendees
$calendar = new VCalendar();
$calendar->add('VEVENT', ['UID' => 'uid-1234']);
$event = $calendar->VEVENT;
$event->add('ORGANIZER', 'mailto:gandalf@wiz.ard');
$event->add('ATTENDEE', 'mailto:' . 'frodo@hobb.it', ['RSVP' => 'TRUE', 'CN' => 'Frodo']);
$event->add('X-NC-DISABLE-SCHEDULING', 'true');
$message = new Message();
$message->method = 'REQUEST';
$message->message = $calendar;
$message->sender = 'mailto:gandalf@wiz.ard';
$message->senderName = 'Mr. Wizard';
$message->recipient = 'mailto:' . 'frodo@hobb.it';
$this->plugin->schedule($message);
$this->assertEquals('1.0;We got the message, but iMip messages are disabled for this event', $message->scheduleStatus);
}
}

@ -1,4 +1,5 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*