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 {