nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
975 stars 240 forks source link

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

Open SergeyMosin opened 2 years ago

SergeyMosin commented 2 years ago

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

SergeyMosin commented 2 years ago

Here is my use-case btw: I am trying to close https://github.com/SergeyMosin/Appointments/issues/12 but if I use ICalendar->serach() it will break https://github.com/SergeyMosin/Appointments/issues/321

Thanks