Implement setAttendeeStatus
Needs ReviewPublic

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

Details

Summary
  • 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

None

Diff Detail

Repository
rS syncroton
Branch
dev/setattendeestatus
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 11711
Build 9287: arc lint + arc unit
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.

Just before I review this on Monday I'd like to point you to https://git.kolab.org/rS409371a7cf4fe25bf902595d79423120b65326e9

machniak added inline comments.Aug 21 2017, 11:05 AM
lib/kolab_sync_data.php
957

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.

lib/kolab_sync_data_calendar.php
188

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.

471

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

472

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.

lib/kolab_sync_data.php
957

I have.

lib/kolab_sync_data_calendar.php
188

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

471

I don't know what this means:

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

472

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.