diff --git a/ChangeLog b/ChangeLog index 2017847c4..57c072b42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-06-19 Wolfgang Sourdeau + * SoObjects/Appointments/SOGoAppointmentFolder.m + (-davResourceType): return the "schedule-inbox" and + "schedule-inbox" caldav types when the user is the owner and the + collection is its personal calendar. + * SoObjects/SOGo/SOGoGCSFolder.m (davSyncCollection:): new method that implements the draft webdav sync specification (http://ietfreport.isoc.org/idref/draft-daboo-webdav-sync/). diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index 218f745c7..1ac58a2a5 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -2210,20 +2210,31 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir - (NSArray *) davResourceType { - static NSArray *colType = nil; - NSArray *cdCol, *gdRT, *gdVEventCol, *gdVTodoCol; + NSMutableArray *colType; + NSArray *gdRT, *gdVEventCol, *gdVTodoCol; + NSString *login; - if (!colType) + colType = [NSMutableArray arrayWithCapacity: 10]; + [colType addObject: @"collection"]; + [colType addObject: [NSArray arrayWithObjects: @"calendar", XMLNS_CALDAV, nil]]; + + gdRT = [self groupDavResourceType]; + gdVEventCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 0], + XMLNS_GROUPDAV, nil]; + [colType addObject: gdVEventCol]; + gdVTodoCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 1], + XMLNS_GROUPDAV, nil]; + [colType addObject: gdVTodoCol]; + if ([nameInContainer isEqualToString: @"personal"]) { - gdRT = [self groupDavResourceType]; - gdVEventCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 0], - XMLNS_GROUPDAV, nil]; - gdVTodoCol = [NSArray arrayWithObjects: [gdRT objectAtIndex: 1], - XMLNS_GROUPDAV, nil]; - cdCol = [NSArray arrayWithObjects: @"calendar", XMLNS_CALDAV, nil]; - colType = [NSArray arrayWithObjects: @"collection", cdCol, - gdVEventCol, gdVTodoCol, nil]; - [colType retain]; + login = [[context activeUser] login]; + if ([login isEqualToString: [self ownerInContext: self]]) + { + [colType addObject: [NSArray arrayWithObjects: @"schedule-inbox", + XMLNS_CALDAV, nil]]; + [colType addObject: [NSArray arrayWithObjects: @"schedule-outbox", + XMLNS_CALDAV, nil]]; + } } return colType;