Skip to content

Commit

Permalink
fix(caldav): add webroot to objectid for activities
Browse files Browse the repository at this point in the history
A calendar uri includes the webroot: example.com/cloud/remote.php/dav/calendars/alice/personal/
The calendar app uses base64(calendar uri) as identifier for calendar objects.

Without this patch the links from activity app to calendar app don't work for installations in a subdirectory.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
  • Loading branch information
kesselb committed Sep 18, 2023
1 parent c0b95e9 commit 3a55fb9
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 1 addition & 1 deletion apps/dav/lib/CalDAV/Activity/Provider/Event.php
Expand Up @@ -97,7 +97,7 @@ protected function generateObjectParameter(array $eventData) {
// The calendar app needs to be manually loaded for the routes to be loaded
OC_App::loadApp('calendar');
$linkData = $eventData['link'];
$objectId = base64_encode('/remote.php/dav/calendars/' . $linkData['owner'] . '/' . $linkData['calendar_uri'] . '/' . $linkData['object_uri']);
$objectId = base64_encode($this->url->getWebroot() . '/remote.php/dav/calendars/' . $linkData['owner'] . '/' . $linkData['calendar_uri'] . '/' . $linkData['object_uri']);
$link = [
'view' => 'dayGridMonth',
'timeRange' => 'now',
Expand Down
2 changes: 2 additions & 0 deletions apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
Expand Up @@ -121,6 +121,8 @@ public function testGenerateObjectParameter(int $id, string $name, ?array $link,
->with('calendar')
->willReturn($calendarAppEnabled);
if ($calendarAppEnabled) {
$this->url->expects($this->once())
->method('getWebroot');
$this->url->expects($this->once())
->method('linkToRouteAbsolute')
->with('calendar.view.indexview.timerange.edit', $generatedLink)
Expand Down

0 comments on commit 3a55fb9

Please sign in to comment.