diff --git a/ChangeLog b/ChangeLog index 8748a06d8..c3b88205b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-10-03 Ludovic Marcotte + + * SoObjects/Appointments/SOGoAppointmentObject.m (-PUTAction:) + We compare sequence numbers to make sure we correctly accept + invitation replies for the "right" objects + 2011-09-30 Wolfgang Sourdeau * OpenChange/MAPIStoreMailMessage.m (-getMessageData:inMemCtx:): diff --git a/Documentation/SOGo Native Microsoft Outlook Configuration.odt b/Documentation/SOGo Native Microsoft Outlook Configuration.odt index 9a47058bf..5c4d86093 100644 Binary files a/Documentation/SOGo Native Microsoft Outlook Configuration.odt and b/Documentation/SOGo Native Microsoft Outlook Configuration.odt differ diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index e4e8e9452..c288b3d22 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -1833,6 +1833,13 @@ attendee = [newEvent userAsAttendee: [SOGoUser userWithLogin: owner]]; + // We first check of the sequences are alright. We don't accept attendees + // accepting "old" invitations. If that's the case, we return a 403 + if ([[newEvent sequence] intValue] < [[oldEvent sequence] intValue]) + return [NSException exceptionWithHTTPStatus:403 + reason: @"sequences don't match"]; + + delegate = nil; delegateEmail = [attendee delegatedTo];