aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib
diff options
context:
space:
mode:
authorAnna Larch <anna@nextcloud.com>2021-11-08 14:29:34 +0100
committerAnna Larch <anna@nextcloud.com>2021-11-08 16:06:39 +0100
commitda227914240e9682fe97c83a20eada7d3ca92d47 (patch)
tree86fc0a3fc218d26f72c564d687094b45defdfdc1 /apps/dav/lib
parent586cc9bcbc3a2c659d241cf82a538326aaeb3b1d (diff)
downloadnextcloud-server-da227914240e9682fe97c83a20eada7d3ca92d47.tar.gz
nextcloud-server-da227914240e9682fe97c83a20eada7d3ca92d47.zip
Force Calendar Obejct Chnage Path to support public write
Signed-off-by: Anna Larch <anna@nextcloud.com>
Diffstat (limited to 'apps/dav/lib')
-rw-r--r--apps/dav/lib/CalDAV/CalendarImpl.php5
-rw-r--r--apps/dav/lib/CalDAV/Schedule/Plugin.php10
2 files changed, 15 insertions, 0 deletions
diff --git a/apps/dav/lib/CalDAV/CalendarImpl.php b/apps/dav/lib/CalDAV/CalendarImpl.php
index d45e12234d1..1c36db68cca 100644
--- a/apps/dav/lib/CalDAV/CalendarImpl.php
+++ b/apps/dav/lib/CalDAV/CalendarImpl.php
@@ -154,6 +154,11 @@ class CalendarImpl implements ICreateFromString {
[, $user] = uriSplit($this->calendar->getPrincipalURI());
$fullCalendarFilename = sprintf('calendars/%s/%s/%s', $user, $this->calendarInfo['uri'], $name);
+ // Force calendar change URI
+ /** @var Schedule\Plugin $schedulingPlugin */
+ $schedulingPlugin = $server->server->getPlugin('caldav-schedule');
+ $schedulingPlugin->setPathOfCalendarObjectChange($fullCalendarFilename);
+
$stream = fopen('php://memory', 'rb+');
fwrite($stream, $calendarData);
rewind($stream);
diff --git a/apps/dav/lib/CalDAV/Schedule/Plugin.php b/apps/dav/lib/CalDAV/Schedule/Plugin.php
index 7ea75dcca2a..96bacce4454 100644
--- a/apps/dav/lib/CalDAV/Schedule/Plugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/Plugin.php
@@ -89,6 +89,16 @@ class Plugin extends \Sabre\CalDAV\Schedule\Plugin {
}
/**
+ * Allow manual setting of the object change URL
+ * to support public write
+ *
+ * @param string $path
+ */
+ public function setPathOfCalendarObjectChange(string $path): void {
+ $this->pathOfCalendarObjectChange = $path;
+ }
+
+ /**
* This method handler is invoked during fetching of properties.
*
* We use this event to add calendar-auto-schedule-specific properties.