Implement setAttendeeStatus
Needs ReviewPublic

Authored by vanmeeuwen on Aug 13 2017, 4:33 PM.


  • Require libcalendaring plugin
  • Provide kolab_sync_data* classes with a means to log something, and not have to initialize/obtain a logger backend.
  • Not all serverIds are longer than 64 characters.

    For example, when an event is created in Roundcube, and Outlook is to accept the invitation, the serverId will be CRC'ed but the event UID, and the CRC will be <= 64 characters.
  • A first few baby-steps to getting back to the iTip, and possibly the event.
Test Plan


Diff Detail

rS syncroton
No Linters Available
No Unit Test Coverage
Build Status
Buildable 11711
Build 9287: arc lint + arc unit

Event Timeline

vanmeeuwen created this revision.Aug 13 2017, 4:33 PM
This revision was automatically updated to reflect the committed changes.
vanmeeuwen reopened this revision.Aug 15 2017, 5:02 PM

Not merged in to master.

vanmeeuwen updated this revision to Diff 1184.Aug 15 2017, 5:03 PM
  • Return NULL for getEntry(), if there is no such entry.
  • Prevent lossy data handling, and preserve the attendee's status
  • Update existing events with the new Meeting Status
  • Fix mismatch between $existing_event being set and using $event
  • Ensure that our new $_attendee is also added back to the list of $event['attendees']
  • The organizer is not true by default -- find the organizer, then set ownership
  • Respond not with a serverId, instead pretend it is all successful
  • Ensure data format transitions retain the additional information wrt. organizer/attendee status
vanmeeuwen updated this revision to Diff 1190.Aug 15 2017, 7:33 PM
  • Handle new events
vanmeeuwen updated this revision to Diff 1220.Aug 18 2017, 4:12 PM
  • Use meetingStatus == 1 for the organizer.
machniak edited edge metadata.Aug 19 2017, 6:50 AM

Just before I review this on Monday I'd like to point you to

machniak added inline comments.Aug 21 2017, 11:05 AM

Did you encounter any issues with this? The point was to not use slower prefix matching query if we have a non-truncated UID. So, we skip this code and go directly to the $folder->get_object($uid) below.


I think we should rather throw an exception as we do e.g. in kolab_sync_data_contacts::getEntry(), Syncroton code can't handle NULL properly.


I don't think we need this version check here. MeetingStatus is supported in older versions for top-level data. Do I miss something?


This does not make much sense to me. This will set the organizer status to DECLINED for events where the user is an attendee. I'd rather set the organizer status always to ACCEPTED.

This needs to be re-evaluated in light of a more recent merge, but there's some questions raised I can see would still need resolving.


I have.


The NULL will result in an exception when such exception is appropriate.


I don't know what this means:

MeetingStatus is supported in older versions for top-level data.


No, it'll only set the attendee's status to DECLINED if the overall meeting status is CANCELLED, and the attendee in question is also the organizer.