diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index 3eb4153fb..5c561ab72 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -2548,7 +2548,7 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir XMLNS_GROUPDAV, nil]; [colType addObject: gdVTodoCol]; } - if ([nameInContainer isEqualToString: @"personal"]) + if ([nameInContainer isEqualToString: @"personal"] || [nameInContainer isEqualToString: @"Personal"]) [colType addObject: [NSArray arrayWithObjects: @"schedule-outbox", XMLNS_CALDAV, nil]]; } diff --git a/SoObjects/Appointments/SOGoUserFolder+Appointments.m b/SoObjects/Appointments/SOGoUserFolder+Appointments.m index cc9dfd6dc..0060637e5 100644 --- a/SoObjects/Appointments/SOGoUserFolder+Appointments.m +++ b/SoObjects/Appointments/SOGoUserFolder+Appointments.m @@ -189,8 +189,8 @@ } - (NSArray *) davCalendarScheduleOutboxURL -{ - return [self _davSpecialCalendarURLWithName: @"personal"]; +{ + return [[context request] isMacOSXVenturaCalendarApp] ? [self _davSpecialCalendarURLWithName: @"Personal"] : [self _davSpecialCalendarURLWithName: @"personal"]; } - (NSArray *) _calendarProxiedUsersWithWriteAccess: (BOOL) write diff --git a/SoObjects/Mailer/SOGoMailAccount.m b/SoObjects/Mailer/SOGoMailAccount.m index 277c98650..b7273283c 100644 --- a/SoObjects/Mailer/SOGoMailAccount.m +++ b/SoObjects/Mailer/SOGoMailAccount.m @@ -136,6 +136,12 @@ static NSString *inboxFolderName = @"INBOX"; namespaceDict = [client namespace]; namespace = [namespaceDict objectForKey: @"personal"]; + // FIXME: Improve MacOSX Ventura support + // Check if the problem will be fixed by Apple or if this fix should be kept in the future + // Ticket #5639 + if ([[context request] isMacOSXVenturaCalendarApp]) { + namespace = [namespaceDict objectForKey: @"Personal"]; + } if (namespace) [self _appendNamespace: namespace toFolders: folders]; diff --git a/SoObjects/SOGo/SOGoFolder.m b/SoObjects/SOGo/SOGoFolder.m index 0932150de..64958aadf 100644 --- a/SoObjects/SOGo/SOGoFolder.m +++ b/SoObjects/SOGo/SOGoFolder.m @@ -200,16 +200,16 @@ selfName = [self realNameInContainer]; otherName = [otherFolder realNameInContainer]; - if ([selfName isEqualToString: @"personal"]) + if ([selfName isEqualToString: @"personal"] || [selfName isEqualToString: @"Personal"]) { - if ([otherName isEqualToString: @"personal"]) + if ([otherName isEqualToString: @"personal"] || [otherName isEqualToString: @"Personal"]) comparison = NSOrderedSame; else comparison = NSOrderedAscending; } else { - if ([otherName isEqualToString: @"personal"]) + if ([otherName isEqualToString: @"personal"] || [otherName isEqualToString: @"Personal"]) comparison = NSOrderedDescending; else comparison = NSOrderedSame; diff --git a/SoObjects/SOGo/SOGoGCSFolder.m b/SoObjects/SOGo/SOGoGCSFolder.m index efdd33860..cad9ac1b5 100644 --- a/SoObjects/SOGo/SOGoGCSFolder.m +++ b/SoObjects/SOGo/SOGoGCSFolder.m @@ -150,7 +150,7 @@ static NSArray *childRecordFields = nil; if ([pathElements count] > 1) ocsName = [pathElements objectAtIndex: 1]; else - ocsName = @"personal"; + ocsName = [[context request] isMacOSXVenturaCalendarApp] ? @"Personal" : @"personal"; path = [NSString stringWithFormat: @"/Users/%@/%@/%@", login, [pathElements objectAtIndex: 0], ocsName]; diff --git a/SoObjects/SOGo/SOGoParentFolder.m b/SoObjects/SOGo/SOGoParentFolder.m index a378ff027..61dade520 100644 --- a/SoObjects/SOGo/SOGoParentFolder.m +++ b/SoObjects/SOGo/SOGoParentFolder.m @@ -173,7 +173,7 @@ static SoSecurityManager *sm = nil; { if (folderType == SOGoPersonalFolder) { - folderName = @"personal"; + folderName = [[context request] isMacOSXVenturaCalendarApp] ? @"Personal" : @"personal"; folder = [subFolderClass objectWithName: folderName inContainer: self]; [folder setDisplayName: [self defaultFolderName]]; [folder setOCSPath: [NSString stringWithFormat: @"%@/%@", OCSPath, folderName]]; @@ -241,7 +241,7 @@ static SoSecurityManager *sm = nil; } if (folderType == SOGoPersonalFolder) { - if (![subFolders objectForKey: @"personal"]) + if (![subFolders objectForKey: @"personal"] || ![subFolders objectForKey: @"Personal"]) [self createSpecialFolder: SOGoPersonalFolder]; } else if (folderType == SOGoCollectedFolder) diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index 1255ec231..ed9f78303 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -1059,7 +1059,7 @@ - (SOGoAppointmentFolder *) personalCalendarFolderInContext: (WOContext *) context { - return [[self calendarsFolderInContext: context] lookupPersonalFolder: @"personal" + return [[self calendarsFolderInContext: context] lookupPersonalFolder: [[context request] isMacOSXVenturaCalendarApp] ? @"Personal" : @"personal" ignoringRights: YES]; }