nextcloud / nextcloud/server

Implement resharing of incoming shared calendars

Open
#43,551 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: caldav feature: sharing
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

Is your feature request related to a problem? Please describe.

The CalDAV backend reports shared calendars as reshareable when they are shared with edit permissions. However, actually resharing the calendar does not work.

Describe the solution you'd like

It should be possible to reshare incoming shared calendars if the backend advertises it.

Describe alternatives you've considered

Do not advertise the resharing capability and drop this feature request.

Additional context

Response when trying to reshare an incoming shared calendar:

POST 403 https://localhost/remote.php/dav/calendars/admin/reshare-test-direct_shared_by_user/
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Sabre\DAV\Exception\Forbidden</s:exception>
  <s:message/>
</d:error>

However, the resharing capability is advertised for this calendar:
Screenshot_20240213_134045

Potentially related code:
https://github.com/nextcloud/server/blob/aa5f037af71c915424c6dcfd5ad2dc82797dc0d6/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php#L136-L139

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with apps/dav/lib/CalDAV/Publishing/PublishPlugin.php around lines 136-139, then trace the CalDAV handling for a reshare POST on an incoming shared calendar. Reproduce the documented 403 response for an editable shared calendar and compare it with the advertised resharing capability. Done means an incoming shared calendar can be reshared when the backend advertises that capability.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.