From e68bf83d3cb107897ce014a2d05dc8199a97c184 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 24 Aug 2007 18:47:32 +0000 Subject: [PATCH] Monotone-Parent: dba6030e8ab5f3e8a853dc8c3dc20a3e3fb3973a Monotone-Revision: c0a9477f1eb52db3cc79a428d99ba7227f71fa3c Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-08-24T18:47:32 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 11 +++++ .../Appointments/SOGoAppointmentFolder.m | 43 +++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7cc9183ea..3bdbd22df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2007-08-24 Wolfgang Sourdeau + * SoObjects/Appointments/SOGoAppointmentFolder.m ([SOGoAppointmentFolder -aclUsersForObjectAtPath:objectPathArray]) + ([SOGoAppointmentFolder -aclsForUser:uidforObjectAtPath:objectPathArray]) + ([SOGoAppointmentFolder -setRoles:rolesforUser:uidforObjectAtPath:objectPathArray]) + ([SOGoAppointmentFolder + -removeAclsForUsers:usersforObjectAtPath:objectPathArray]): + override those methods to use the "personal" additional directory. + + * SoObjects/SOGo/SOGoUserFolder.m ([-ocsPrivateCalendarPath]): + append "/personal" to the calendar path to simulate a single + calendar in a choice of many. + * SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder -lookupName:_keyinContext:acquire:_acquire]): moved the lookup methods back here. Moved the folder existence check here, and do diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index 5e7955a7e..a5314d019 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -1297,4 +1297,47 @@ static NSNumber *sharedYes = nil; return @"IPF.Appointment"; } +/* hack until we permit more than 1 cal per user */ +- (NSArray *) _fixedPath: (NSArray *) objectPath +{ + NSMutableArray *newPath; + + newPath = [NSMutableArray arrayWithArray: objectPath]; + if ([newPath count] > 2 + && ![[newPath objectAtIndex: 2] isEqualToString: @"personal"]) + [newPath insertObject: @"personal" atIndex: 2]; + else + [newPath addObject: @"personal"]; + + return newPath; +} + +- (NSArray *) aclUsersForObjectAtPath: (NSArray *) objectPathArray +{ + return [super aclUsersForObjectAtPath: [self _fixedPath: objectPathArray]]; +} + +- (NSArray *) aclsForUser: (NSString *) uid + forObjectAtPath: (NSArray *) objectPathArray +{ + return [super aclsForUser: uid + forObjectAtPath: [self _fixedPath: objectPathArray]]; +} + +- (void) setRoles: (NSArray *) roles + forUser: (NSString *) uid + forObjectAtPath: (NSArray *) objectPathArray +{ + [super setRoles: roles + forUser: uid + forObjectAtPath: [self _fixedPath: objectPathArray]]; +} + +- (void) removeAclsForUsers: (NSArray *) users + forObjectAtPath: (NSArray *) objectPathArray +{ + [super removeAclsForUsers: users + forObjectAtPath: [self _fixedPath: objectPathArray]]; +} + @end /* SOGoAppointmentFolder */