nextcloud / nextcloud/calendar

Events with 'When shared show only busy' are ignored by ICalendar>CalendarImpl.php>CalDavBackend.php->search()

Open
#4,458 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. to triage bug Feature: Sharing
Dominant language
JavaScript
Stars
1.2k
Forks
332
Avg merge
16h 13m
Merged PRs (30d)
137

Description

Steps to reproduce
  1. Share a calendar User1 -> User2
  2. User1: create an event with accessClass='When shared show only busy' and timeTransparency='Busy'
    https://github.com/nextcloud/calendar/blob/f39e31fec11708970f975dc83e49246decce95dd/src/models/rfcProps.js#L35-L46
    https://github.com/nextcloud/calendar/blob/f39e31fec11708970f975dc83e49246decce95dd/src/models/rfcProps.js#L82-L92
  3. Call ICalendar->search() as User2
    https://github.com/nextcloud/server/blob/eeec6142ca6af64e86d1dde9103fb365a3c5f51d/lib/public/Calendar/ICalendar.php#L61-L71
Expected behavior

User1 set timeTransparency to Busy and accessClass to When shared show only busy therefore the event should be returned when User2 calls the ICalendar->search() function

Actual behaviour

The event is not returned.

CalendarImpl->search() https://github.com/nextcloud/server/blob/5079bf6dd9df1240e88435b56e996b5cd8abde06/apps/dav/lib/CalDAV/CalendarImpl.php#L109-L112
calls CalDavBackend->search() https://github.com/nextcloud/server/blob/532c7545bdc0ba37337d2103a74fce796915539b/apps/dav/lib/CalDAV/CalDavBackend.php#L1826-L1827
and the 'When shared show only busy' (aka CONFIDENTIAL) event is skipped here:
https://github.com/nextcloud/server/blob/532c7545bdc0ba37337d2103a74fce796915539b/apps/dav/lib/CalDAV/CalDavBackend.php#L1837-L1843

*Please that note this bug is specific to ICalendar->serach() because it uses CalDavBackend->search(), while other methods might call CalDavBackend->calendarQuery()

Calendar app version

No response

CalDAV-clients used

No response

Browser

No response

Client operating system

No response

Server operating system

No response

Web server

No response

Database engine version

No response

PHP engine version

No response

Nextcloud version

No response

Updated from an older installed version or fresh install

No response

List of activated apps

No response

Nextcloud configuration

No response

Web server error log

No response

Log file

No response

Browser log

No response

Additional info

No response

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/CalendarImpl.php search() and follow its call into CalDavBackend.php search(), especially the access-class filtering around the referenced lines. Compare this path with calendarQuery() and reproduce the shared-calendar case; done means ICalendar->search() returns a Busy event marked “When shared show only busy” for the other user.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.