diff --git a/composer.json b/composer.json index 38d36de7..7d98483f 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "php-amqplib/php-amqplib": "^3.3", "php": ">=8.4", "sabre/dav": "4.7.1", - "sabre/vobject": "dev-linagora-waiting-merges-4.5#df65b241c18c4c08cca31fb4dc71b82d231dfc06 as 4.5.7", + "sabre/vobject": "dev-linagora-waiting-merges-5.0.0#2ada121c9c5e76cabbf16724dda640ccbe87593d", "mongodb/mongodb": "^2.2", "monolog/monolog": "^2.9", "firebase/php-jwt": "^7.0" diff --git a/lib/CalDAV/NullableUri.php b/lib/CalDAV/NullableUri.php index c79b4d38..61d3990d 100644 --- a/lib/CalDAV/NullableUri.php +++ b/lib/CalDAV/NullableUri.php @@ -8,7 +8,7 @@ class NullableUri extends Uri { #[\ReturnTypeWillChange] - public function offsetSet($name, $value) + public function offsetSet($name, $value): void { if (!$this->isNullableProperty() && strtoupper((string)$name) === 'VALUE' @@ -20,7 +20,7 @@ public function offsetSet($name, $value) parent::offsetSet($name, $value); } - public function setJsonValue(array $value) + public function setJsonValue(array $value): void { parent::setJsonValue($this->isNullableProperty() && [null] === $value ? [''] : $value); } diff --git a/lib/CalDAV/Schedule/ITipPlugin.php b/lib/CalDAV/Schedule/ITipPlugin.php index 68c8b495..658fdb14 100644 --- a/lib/CalDAV/Schedule/ITipPlugin.php +++ b/lib/CalDAV/Schedule/ITipPlugin.php @@ -70,7 +70,7 @@ function iTip($request) $message->component = 'VEVENT'; $message->uid = $payload->uid; $message->method = $issetdef('method', 'REQUEST'); - $message->sequence = $issetdef('sequence', '0'); + $message->sequence = (int) $issetdef('sequence', 0); $message->message = VObject\Reader::read($payload->ical); // Events coming from an external system carry the video conference link in the // OpenPaaS property only: expose it to the recipient's clients as well. diff --git a/lib/CalDAV/Schedule/Plugin.php b/lib/CalDAV/Schedule/Plugin.php index 24dcfa32..0921ffb6 100644 --- a/lib/CalDAV/Schedule/Plugin.php +++ b/lib/CalDAV/Schedule/Plugin.php @@ -78,7 +78,7 @@ function deliver(ITip\Message $iTipMessage) { $iTipMessage->message->VEVENT->SEQUENCE =0; } - if (!is_string($iTipMessage->recipient)) { + if (!isset($iTipMessage->recipient)) { $iTipMessage->recipient = ''; } diff --git a/tests/CalDAV/ImportPluginTest.php b/tests/CalDAV/ImportPluginTest.php index 3e90892d..a67bfb6c 100644 --- a/tests/CalDAV/ImportPluginTest.php +++ b/tests/CalDAV/ImportPluginTest.php @@ -91,7 +91,7 @@ private function newItipMessage($sequence) { $message->component = 'VEVENT'; $message->uid = 'UID'; - $message->sequence = $sequence; + $message->sequence = (int) $sequence; $message->method = 'REQUEST'; $message->sender = 'mailto:a@a.com'; $message->recipient = 'mailto:b@b.com'; diff --git a/tests/CalDAV/Schedule/SchedulePluginTest.php b/tests/CalDAV/Schedule/SchedulePluginTest.php index 664be5c5..9371a891 100644 --- a/tests/CalDAV/Schedule/SchedulePluginTest.php +++ b/tests/CalDAV/Schedule/SchedulePluginTest.php @@ -146,9 +146,9 @@ function testShouldPreservePublicAgendaMetadataOnOutgoingMinimalMessage() { $this->assertStringContainsString('X-OPENPAAS-BOOKING-LINK:booking-link-id', $serializedMessage); } - function testDeliverShouldNotCrashWhenRecipientIsNull() { + function testDeliverShouldNotCrashWhenRecipientIsMissing() { $message = $this->newItipMessage('1'); - $message->recipient = null; + unset($message->recipient); $this->plugin->deliver($message); @@ -1019,7 +1019,7 @@ private function newItipMessage($sequence) { $message->component = 'VEVENT'; $message->uid = 'UID'; - $message->sequence = $sequence; + $message->sequence = $sequence === '' ? null : (int) $sequence; $message->method = 'REQUEST'; $message->sender = 'mailto:a@a.com'; $message->recipient = 'mailto:b@b.com'; @@ -1508,6 +1508,7 @@ private function initializePluginForTeamCalendarDelivery(array $teamCalendarPriv private function newReplyMessage(string $uid, string $recipient): Message { $message = new Message(); + $message->component = 'VEVENT'; $message->method = 'REPLY'; $message->uid = $uid; $message->recipient = $recipient;