-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(CalDAV): iTipBroker message generation and testing #50843
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: SebastianKrupinski <[email protected]>
Signed-off-by: SebastianKrupinski <[email protected]>
Signed-off-by: SebastianKrupinski <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The following case did not cause a reaction email being sent to the organizer:
- Organizer invites attendee (recurring, daily, 5 times).
- Attendee declines the second to last instance.
In general, no messages seem to get sent if an attendee accepts or declines a single instance.
Is this intended?
I don't think this has anything to do with this PR.
This should work just like any other scenario, I tested this on my end and the iTip message are being generated properly. Example,
This PR does not touch the Attendee portion of the iTipBroker, that is done in the parseEventForAttendee function and this only overloads the parseEventForOrganizer function which generates messages for organizer changes.
I had the same problem, this is most likely a issue with your DEV instance, when our server tests run they empty out the appdata_* folder, this is the place where the contents of a sent message is saved and if the "appdata_/mail/mail_user" folder is missing the send process fails. |
/backport to stable31 |
/backport to stable30 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does not fix cancelling a single instance.
Consider two accounts: organizer and user.
- Organizer: Create recurring event, daily, 3 times and invite another user.
- User: Accept whole series.
- Organizer: Cancels an instance, e.g. the second one.
Expected: User will only see the second instance being cancelled.
Actual: The whole series is cancelled from user's POV.
I exported the events and was able to confirm that the organizer's event has a new instance with a cancelled state. The user's event however, does not contain a separate instance. Instead, the base event was cancelled.
Okay, having a look. Disregard the last message, I tested the wrong thing |
LMAO. So I found the issue... You've found another bug that I didn't know existed... So the iTipBroker is now generating proper messages for instances, but its not processing Cancellation instances properly... The method at fault... Sabre\VObject\ITip\Broker::processMessageCancel()
As you can see it does not check the iTipMessage for a RECURRANCE-ID, it just applies the cancellation to every instance... |
Signed-off-by: SebastianKrupinski <[email protected]>
Signed-off-by: SebastianKrupinski <[email protected]>
Summary
Refactored iTip broker message generation to improve logic and RFC compatibility
TODO
Checklist