From 1af2ab7453112f4498f91f52b52e3363af22bcce Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 19 Mar 2012 20:57:35 +0000 Subject: [PATCH] Monotone-Parent: 0ad0dd5ada272b8cb3b3ec56737e667ebeccd725 Monotone-Revision: fccd21ec84b5d4e56232523b4a8b8733c3d3a051 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-03-19T20:57:35 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 3 ++ .../SOGoUserFolder+Appointments.m | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/ChangeLog b/ChangeLog index dfff79101..58de6b6a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2012-03-19 Wolfgang Sourdeau + * SoObjects/Appointments/SOGoUserFolder+Appointments.m + (-davCalendarUserType, -davEmailAddressSet): new DAV accessors. + * OpenChange/MAPIStoreCalendarMessage.m (-save): check recipients even if PidLidAppointmentStateFlags is nil or 0, since all that matters is that the "recipients" dict be present in the properties diff --git a/SoObjects/Appointments/SOGoUserFolder+Appointments.m b/SoObjects/Appointments/SOGoUserFolder+Appointments.m index 31f712ee3..c9c440b10 100644 --- a/SoObjects/Appointments/SOGoUserFolder+Appointments.m +++ b/SoObjects/Appointments/SOGoUserFolder+Appointments.m @@ -89,6 +89,46 @@ return addresses; } +- (NSString *) davCalendarUserType +{ + /* FIXME: not always true */ + return @"INDIVIDUAL"; +} + +- (NSArray *) davEmailAddressSet +{ + NSArray *tag; + NSMutableArray *addresses; + NSEnumerator *emails; + NSMutableDictionary *doneEmails; + NSString *currentEmail; + SOGoUser *ownerUser; + + addresses = [NSMutableArray array]; + + doneEmails = [NSMutableDictionary dictionary]; + ownerUser = [SOGoUser userWithLogin: owner]; + emails = [[ownerUser allEmails] objectEnumerator]; + while ((currentEmail = [emails nextObject])) + { + if (![doneEmails objectForKey: currentEmail]) + { + tag = [NSArray arrayWithObjects: @"email-address", XMLNS_CalendarServerOrg, @"cso", + [NSString stringWithFormat: @"%@", currentEmail], + nil]; + [addresses addObject: tag]; + [doneEmails setObject: [NSNull null] forKey: currentEmail]; + } + } + + tag = [NSArray arrayWithObjects: @"href", XMLNS_WEBDAV, @"D", + [NSString stringWithFormat: @"/SOGo/dav/%@/", nameInContainer], + nil]; + [addresses addObjectUniquely: tag]; + + return addresses; +} + /* CalDAV support */ - (NSArray *) davCalendarHomeSet {