diff options
Diffstat (limited to 'apps/dav/lib/CalDAV/Plugin.php')
-rw-r--r-- | apps/dav/lib/CalDAV/Plugin.php | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/apps/dav/lib/CalDAV/Plugin.php b/apps/dav/lib/CalDAV/Plugin.php index 4aa9762899f..b9ec8241faa 100644 --- a/apps/dav/lib/CalDAV/Plugin.php +++ b/apps/dav/lib/CalDAV/Plugin.php @@ -25,15 +25,29 @@ namespace OCA\DAV\CalDAV; class Plugin extends \Sabre\CalDAV\Plugin { + const SYSTEM_CALENDAR_ROOT = 'system-calendars'; + /** * @inheritdoc */ - function getCalendarHomeForPrincipal($principalUrl) { + function getCalendarHomeForPrincipal($principalUrl):string { + + //TODO - debug this if (strrpos($principalUrl, 'principals/users', -strlen($principalUrl)) !== false) { list(, $principalId) = \Sabre\Uri\split($principalUrl); - return self::CALENDAR_ROOT .'/' . $principalId; + return self::CALENDAR_ROOT . '/' . $principalId; + } + if (strrpos($principalUrl, 'principals/calendar-resources', -strlen($principalUrl)) !== false) { + list(, $principalId) = \Sabre\Uri\split($principalUrl); + return self::SYSTEM_CALENDAR_ROOT . '/calendar-resources/' . $principalId; } + if (strrpos($principalUrl, 'principals/calendar-rooms', -strlen($principalUrl)) !== false) { + list(, $principalId) = \Sabre\Uri\split($principalUrl); + return self::SYSTEM_CALENDAR_ROOT . '/calendar-rooms/' . $principalId; + } + + throw new \LogicException('This is not supposed to happen'); } } |