aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2025-03-11 15:54:58 +0100
committerEdward Ly <contact@edward.ly>2025-03-31 10:26:23 -0700
commitbcb2c50c6f3bdd754b5b22f09f39943a4b77a595 (patch)
tree194b7899a06138ac91f5f59306d4c4e153f3ddb4
parent5f15089a05d4ae39485b073028229fad4ff461b8 (diff)
downloadnextcloud-server-backport/51082/stable31.tar.gz
nextcloud-server-backport/51082/stable31.zip
fix(caldav): Restore old private events and deprecate thembackport/51082/stable31
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php6
-rw-r--r--apps/dav/composer/composer/autoload_static.php6
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php26
-rw-r--r--apps/dav/lib/Events/CalendarObjectCreatedEvent.php71
-rw-r--r--apps/dav/lib/Events/CalendarObjectDeletedEvent.php71
-rw-r--r--apps/dav/lib/Events/CalendarObjectMovedEvent.php91
-rw-r--r--apps/dav/lib/Events/CalendarObjectMovedToTrashEvent.php66
-rw-r--r--apps/dav/lib/Events/CalendarObjectRestoredEvent.php66
-rw-r--r--apps/dav/lib/Events/CalendarObjectUpdatedEvent.php71
9 files changed, 474 insertions, 0 deletions
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index 930f1ae2b0d..f33e27fc8ac 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -255,6 +255,12 @@ return array(
'OCA\\DAV\\Events\\CalendarCreatedEvent' => $baseDir . '/../lib/Events/CalendarCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarDeletedEvent' => $baseDir . '/../lib/Events/CalendarDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => $baseDir . '/../lib/Events/CalendarMovedToTrashEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectCreatedEvent' => $baseDir . '/../lib/Events/CalendarObjectCreatedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectDeletedEvent' => $baseDir . '/../lib/Events/CalendarObjectDeletedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectMovedEvent' => $baseDir . '/../lib/Events/CalendarObjectMovedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectMovedToTrashEvent' => $baseDir . '/../lib/Events/CalendarObjectMovedToTrashEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectRestoredEvent' => $baseDir . '/../lib/Events/CalendarObjectRestoredEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectUpdatedEvent' => $baseDir . '/../lib/Events/CalendarObjectUpdatedEvent.php',
'OCA\\DAV\\Events\\CalendarPublishedEvent' => $baseDir . '/../lib/Events/CalendarPublishedEvent.php',
'OCA\\DAV\\Events\\CalendarRestoredEvent' => $baseDir . '/../lib/Events/CalendarRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => $baseDir . '/../lib/Events/CalendarShareUpdatedEvent.php',
diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php
index 8ed3e806fa5..4bf3c3bca38 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -270,6 +270,12 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Events\\CalendarCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarMovedToTrashEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectCreatedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectDeletedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectMovedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectMovedEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectMovedToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectMovedToTrashEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectRestoredEvent.php',
+ 'OCA\\DAV\\Events\\CalendarObjectUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectUpdatedEvent.php',
'OCA\\DAV\\Events\\CalendarPublishedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarPublishedEvent.php',
'OCA\\DAV\\Events\\CalendarRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarShareUpdatedEvent.php',
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 349a4ec3630..75ac6c942c8 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -19,6 +19,12 @@ use OCA\DAV\Events\CachedCalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarCreatedEvent;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarMovedToTrashEvent;
+use OCA\DAV\Events\CalendarObjectCreatedEvent as LegacyCalendarObjectCreatedEvent;
+use OCA\DAV\Events\CalendarObjectDeletedEvent as LegacyCalendarObjectDeletedEvent;
+use OCA\DAV\Events\CalendarObjectMovedEvent as LegacyCalendarObjectMovedEvent;
+use OCA\DAV\Events\CalendarObjectMovedToTrashEvent as LegacyCalendarObjectMovedToTrashEvent;
+use OCA\DAV\Events\CalendarObjectRestoredEvent as LegacyCalendarObjectRestoredEvent;
+use OCA\DAV\Events\CalendarObjectUpdatedEvent as LegacyCalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarPublishedEvent;
use OCA\DAV\Events\CalendarRestoredEvent;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
@@ -1318,6 +1324,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$shares = $this->getShares($calendarId);
$this->dispatcher->dispatchTyped(new CalendarObjectCreatedEvent($calendarId, $calendarRow, $shares, $objectRow));
+ $this->dispatcher->dispatchTyped(new LegacyCalendarObjectCreatedEvent($calendarId, $calendarRow, $shares, $objectRow));
} else {
$subscriptionRow = $this->getSubscriptionById($calendarId);
@@ -1378,6 +1385,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$shares = $this->getShares($calendarId);
$this->dispatcher->dispatchTyped(new CalendarObjectUpdatedEvent($calendarId, $calendarRow, $shares, $objectRow));
+ $this->dispatcher->dispatchTyped(new LegacyCalendarObjectUpdatedEvent($calendarId, $calendarRow, $shares, $objectRow));
} else {
$subscriptionRow = $this->getSubscriptionById($calendarId);
@@ -1439,6 +1447,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$targetShares = $this->getShares($targetCalendarId);
$sourceCalendarRow = $this->getCalendarById($sourceCalendarId);
$this->dispatcher->dispatchTyped(new CalendarObjectMovedEvent($sourceCalendarId, $sourceCalendarRow, $targetCalendarId, $targetCalendarRow, $sourceShares, $targetShares, $object));
+ $this->dispatcher->dispatchTyped(new LegacyCalendarObjectMovedEvent($sourceCalendarId, $sourceCalendarRow, $targetCalendarId, $targetCalendarRow, $sourceShares, $targetShares, $object));
}
return true;
}, $this->db);
@@ -1497,6 +1506,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$shares = $this->getShares($calendarId);
$this->dispatcher->dispatchTyped(new CalendarObjectDeletedEvent($calendarId, $calendarRow, $shares, $data));
+ $this->dispatcher->dispatchTyped(new LegacyCalendarObjectDeletedEvent($calendarId, $calendarRow, $shares, $data));
} else {
$subscriptionRow = $this->getSubscriptionById($calendarId);
@@ -1546,6 +1556,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$data
)
);
+ $this->dispatcher->dispatchTyped(
+ new LegacyCalendarObjectMovedToTrashEvent(
+ $calendarId,
+ $calendarData,
+ $this->getShares($calendarId),
+ $data
+ )
+ );
}
}
@@ -1605,6 +1623,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$row
)
);
+ $this->dispatcher->dispatchTyped(
+ new LegacyCalendarObjectRestoredEvent(
+ (int)$objectData['calendarid'],
+ $calendarRow,
+ $this->getShares((int)$row['calendarid']),
+ $row
+ )
+ );
}, $this->db);
}
diff --git a/apps/dav/lib/Events/CalendarObjectCreatedEvent.php b/apps/dav/lib/Events/CalendarObjectCreatedEvent.php
new file mode 100644
index 00000000000..1227b81e773
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectCreatedEvent.php
@@ -0,0 +1,71 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * Class CalendarObjectCreatedEvent
+ *
+ * @package OCA\DAV\Events
+ * @since 20.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectCreatedEvent} instead
+ */
+class CalendarObjectCreatedEvent extends Event {
+
+ /**
+ * CalendarObjectCreatedEvent constructor.
+ *
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 20.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 20.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}
diff --git a/apps/dav/lib/Events/CalendarObjectDeletedEvent.php b/apps/dav/lib/Events/CalendarObjectDeletedEvent.php
new file mode 100644
index 00000000000..abbcaf21344
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectDeletedEvent.php
@@ -0,0 +1,71 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * Class CalendarObjectDeletedEvent
+ *
+ * @package OCA\DAV\Events
+ * @since 20.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectDeletedEvent} instead
+ */
+class CalendarObjectDeletedEvent extends Event {
+
+ /**
+ * CalendarObjectDeletedEvent constructor.
+ *
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 20.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 20.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}
diff --git a/apps/dav/lib/Events/CalendarObjectMovedEvent.php b/apps/dav/lib/Events/CalendarObjectMovedEvent.php
new file mode 100644
index 00000000000..b5252ebc9e0
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectMovedEvent.php
@@ -0,0 +1,91 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * Class CalendarObjectMovedEvent
+ *
+ * @package OCA\DAV\Events
+ * @since 25.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectMovedEvent} instead
+ */
+class CalendarObjectMovedEvent extends Event {
+ /**
+ * @since 25.0.0
+ */
+ public function __construct(
+ private int $sourceCalendarId,
+ private array $sourceCalendarData,
+ private int $targetCalendarId,
+ private array $targetCalendarData,
+ private array $sourceShares,
+ private array $targetShares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 25.0.0
+ */
+ public function getSourceCalendarId(): int {
+ return $this->sourceCalendarId;
+ }
+
+ /**
+ * @return array
+ * @since 25.0.0
+ */
+ public function getSourceCalendarData(): array {
+ return $this->sourceCalendarData;
+ }
+
+ /**
+ * @return int
+ * @since 25.0.0
+ */
+ public function getTargetCalendarId(): int {
+ return $this->targetCalendarId;
+ }
+
+ /**
+ * @return array
+ * @since 25.0.0
+ */
+ public function getTargetCalendarData(): array {
+ return $this->targetCalendarData;
+ }
+
+ /**
+ * @return array
+ * @since 25.0.0
+ */
+ public function getSourceShares(): array {
+ return $this->sourceShares;
+ }
+
+ /**
+ * @return array
+ * @since 25.0.0
+ */
+ public function getTargetShares(): array {
+ return $this->targetShares;
+ }
+
+ /**
+ * @return array
+ * @since 25.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}
diff --git a/apps/dav/lib/Events/CalendarObjectMovedToTrashEvent.php b/apps/dav/lib/Events/CalendarObjectMovedToTrashEvent.php
new file mode 100644
index 00000000000..548824e17cb
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectMovedToTrashEvent.php
@@ -0,0 +1,66 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * @since 22.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectMovedToTrashEvent} instead
+ */
+class CalendarObjectMovedToTrashEvent extends Event {
+
+ /**
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 22.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 22.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}
diff --git a/apps/dav/lib/Events/CalendarObjectRestoredEvent.php b/apps/dav/lib/Events/CalendarObjectRestoredEvent.php
new file mode 100644
index 00000000000..29e7148225d
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectRestoredEvent.php
@@ -0,0 +1,66 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * @since 22.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectRestoredEvent} instead
+ */
+class CalendarObjectRestoredEvent extends Event {
+
+ /**
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 22.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 22.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 22.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}
diff --git a/apps/dav/lib/Events/CalendarObjectUpdatedEvent.php b/apps/dav/lib/Events/CalendarObjectUpdatedEvent.php
new file mode 100644
index 00000000000..01d684dc6b2
--- /dev/null
+++ b/apps/dav/lib/Events/CalendarObjectUpdatedEvent.php
@@ -0,0 +1,71 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+
+/**
+ * Class CalendarObjectUpdatedEvent
+ *
+ * @package OCA\DAV\Events
+ * @since 20.0.0
+ * @deprecated 31.0.2 Use {@see \OCP\Calendar\Events\CalendarObjectUpdatedEvent} instead
+ */
+class CalendarObjectUpdatedEvent extends Event {
+
+ /**
+ * CalendarObjectUpdatedEvent constructor.
+ *
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 20.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 20.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 20.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+}