]> source.dussan.org Git - nextcloud-server.git/commitdiff
Hash event UID to make sure it's not too long for PushProvider 19639/head
authorThomas Citharel <tcit@tcit.fr>
Sat, 1 Feb 2020 14:29:02 +0000 (15:29 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Tue, 25 Feb 2020 16:05:34 +0000 (16:05 +0000)
notifications

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
apps/dav/lib/CalDAV/Reminder/NotificationProvider/PushProvider.php
apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php

index 675dc24473dc6bb05e38daad4de10b75681efbf0..7e560159950aff7df8fa39fb406c5b5cd6342647 100644 (file)
@@ -93,6 +93,9 @@ class PushProvider extends AbstractProvider {
 
                $eventDetails = $this->extractEventDetails($vevent);
                $eventDetails['calendar_displayname'] = $calendarDisplayName;
+               $eventUUID = (string) $vevent->UID;
+               // Empty Notification ObjectId will be catched by OC\Notification\Notification
+               $eventUUIDHash = $eventUUID ? hash('sha256', $eventUUID, false) : '';
 
                foreach($users as $user) {
                        /** @var INotification $notification */
@@ -100,7 +103,7 @@ class PushProvider extends AbstractProvider {
                        $notification->setApp(Application::APP_ID)
                                ->setUser($user->getUID())
                                ->setDateTime($this->timeFactory->getDateTime())
-                               ->setObject(Application::APP_ID, (string) $vevent->UID)
+                               ->setObject(Application::APP_ID, $eventUUIDHash)
                                ->setSubject('calendar_reminder', [
                                        'title' => $eventDetails['title'],
                                        'start_atom' => $eventDetails['start_atom']
index feda4ab45ac58ca465afe5517fe031b097530314..92ccbfb08f8034f5c1b9b7027c1c3a7b4a3dffa8 100644 (file)
@@ -189,7 +189,7 @@ class PushProviderTest extends AbstractNotificationProviderTest {
 
                $notification->expects($this->once())
                        ->method('setObject')
-                       ->with('dav', 'uid1234')
+                       ->with('dav', hash('sha256', 'uid1234', false))
                        ->willReturn($notification);
 
                $notification->expects($this->once())