From 04afaf54302b988f29b8ad8a9b500de639a37a35 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 9 May 2007 18:25:51 +0000 Subject: [PATCH] Monotone-Parent: 1a8298d1520d86d2ba9068bd72abcf7073aa20a8 Monotone-Revision: e9bc6cb46a4431aee9c0112701adef16e8fde065 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-05-09T18:25:51 Monotone-Branch: ca.inverse.sogo --- .../Appointments/SOGoAppointmentFolder.m | 8 ++--- .../Appointments/SOGoAppointmentObject.m | 32 +++++++++---------- SoObjects/Appointments/SOGoFreeBusyObject.h | 10 +++--- SoObjects/Appointments/SOGoFreeBusyObject.m | 26 ++++++++++++--- SoObjects/Appointments/SOGoTaskObject.m | 10 +++--- SoObjects/Mailer/SOGoUser+Mail.m | 4 +-- UI/Common/UIxAclEditor.m | 9 +++--- UI/Common/UIxFolderActions.h | 6 ++-- UI/Common/UIxFolderActions.m | 19 ++++++----- UI/Common/UIxObjectActions.m | 6 ++-- UI/Common/UIxUserRightsEditor.m | 10 +++--- UI/Scheduler/UIxAppointmentEditor.m | 1 - UI/Scheduler/UIxAppointmentView.m | 9 +++--- UI/Scheduler/UIxCalView.m | 4 +-- UI/Scheduler/UIxCalendarSelector.m | 1 - UI/Scheduler/UIxTaskEditor.m | 1 - UI/Scheduler/UIxTaskView.m | 10 +++--- 17 files changed, 91 insertions(+), 75 deletions(-) diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index 3ca862f15..f07b81bf6 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -30,7 +30,7 @@ // #import #import -#import +#import #import #import #import @@ -741,7 +741,7 @@ static NSNumber *sharedYes = nil; privacySqlString = @"and (isopaque = 1)"; else { - email = [activeUser email]; + email = [activeUser primaryEmail]; privacySqlString = [NSString stringWithFormat: @@ -1092,7 +1092,7 @@ static NSNumber *sharedYes = nil; { /* Note: can return NSNull objects in the array! */ NSMutableArray *uids; - AgenorUserManager *um; + LDAPUserManager *um; unsigned i, count; if (_persons == nil) @@ -1100,7 +1100,7 @@ static NSNumber *sharedYes = nil; count = [_persons count]; uids = [NSMutableArray arrayWithCapacity:count + 1]; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; for (i = 0; i < count; i++) { iCalPerson *person; diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index ea76ffb2b..691ed36ed 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -26,11 +26,9 @@ #import #import -#import -#import -#import - -#import "iCalEntityObject+Agenor.h" +#import +#import +#import #import "common.h" @@ -46,7 +44,7 @@ /* iCal handling */ - (NSArray *) attendeeUIDsFromAppointment: (iCalEvent *) _apt { - AgenorUserManager *um; + LDAPUserManager *um; NSMutableArray *uids; NSArray *attendees; unsigned i, count; @@ -60,13 +58,13 @@ count = [attendees count]; uids = [NSMutableArray arrayWithCapacity:count + 1]; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; /* add organizer */ email = [[_apt organizer] rfc822Email]; if ([email isNotNull]) { - uid = [um getUIDForEmail:email]; + uid = [um getUIDForEmail: email]; if ([uid isNotNull]) { [uids addObject:uid]; } @@ -201,7 +199,7 @@ - delete in removed folders - send iMIP mail for all folders not found */ - AgenorUserManager *um; + LDAPUserManager *um; iCalEvent *oldApt, *newApt; iCalEventChanges *changes; iCalPerson *organizer; @@ -217,7 +215,7 @@ return [NSException exceptionWithHTTPStatus: 400 /* Bad Request */ reason: @"got no iCalendar content to store!"]; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; /* handle old content */ @@ -247,12 +245,10 @@ /* diff */ changes = [iCalEventChanges changesFromEvent: oldApt toEvent: newApt]; - uids = [um getUIDsForICalPersons: [changes deletedAttendees] - applyStrictMapping: NO]; + uids = [self getUIDsForICalPersons: [changes deletedAttendees]]; removedUIDs = [NSMutableArray arrayWithArray: uids]; - uids = [um getUIDsForICalPersons: [newApt attendees] - applyStrictMapping: NO]; + uids = [self getUIDsForICalPersons: [newApt attendees]]; storeUIDs = [NSMutableArray arrayWithArray: uids]; props = [changes updatedProperties]; @@ -263,7 +259,7 @@ /* preserve organizer */ organizer = [newApt organizer]; - uid = [um getUIDForICalPerson: organizer]; + uid = [self getUIDForICalPerson: organizer]; if (!uid) uid = [self ownerInContext: nil]; if (uid) { @@ -275,7 +271,7 @@ /* organizer might have changed completely */ if (oldApt && ([props containsObject: @"organizer"])) { - uid = [um getUIDForICalPerson:[oldApt organizer]]; + uid = [self getUIDForICalPerson:[oldApt organizer]]; if (uid) { if (![storeUIDs containsObject:uid]) { if (![removedUIDs containsObject:uid]) { @@ -435,6 +431,7 @@ NSString *newContentString, *oldContentString; iCalCalendar *eventCalendar; iCalEvent *event; + iCalPerson *organizer; NSArray *organizers; oldContentString = [self contentAsString]; @@ -449,7 +446,8 @@ newContentString = contentString; else { - [event setOrganizerWithUid: [[self container] ownerInContext: nil]]; + organizer = [self iCalPersonWithUID: [self ownerInContext: context]]; + [event setOrganizer: organizer]; newContentString = [eventCalendar versitString]; } } diff --git a/SoObjects/Appointments/SOGoFreeBusyObject.h b/SoObjects/Appointments/SOGoFreeBusyObject.h index 9d3ea6f5a..09e803b98 100644 --- a/SoObjects/Appointments/SOGoFreeBusyObject.h +++ b/SoObjects/Appointments/SOGoFreeBusyObject.h @@ -40,13 +40,13 @@ /* accessors */ -- (NSString *)iCalString; +- (NSString *) iCalString; -- (NSString *)contentAsStringFrom:(NSCalendarDate *)_startDate - to:(NSCalendarDate *)_endDate; +- (NSString *) contentAsStringFrom: (NSCalendarDate *) _startDate + to: (NSCalendarDate *) _endDate; -- (NSArray *)fetchFreeBusyInfosFrom:(NSCalendarDate *)_startDate - to:(NSCalendarDate *)_endDate; +- (NSArray *) fetchFreeBusyInfosFrom: (NSCalendarDate *) _startDate + to: (NSCalendarDate *) _endDate; @end diff --git a/SoObjects/Appointments/SOGoFreeBusyObject.m b/SoObjects/Appointments/SOGoFreeBusyObject.m index 28bc3849f..e10083c27 100644 --- a/SoObjects/Appointments/SOGoFreeBusyObject.m +++ b/SoObjects/Appointments/SOGoFreeBusyObject.m @@ -25,7 +25,7 @@ #import "common.h" -#import +#import #import #import "SOGoFreeBusyObject.h" @@ -110,11 +110,28 @@ return fbType; } +- (iCalPerson *) iCalPersonWithUID: (NSString *) uid +{ + iCalPerson *person; + LDAPUserManager *um; + NSDictionary *contactInfos; + + um = [LDAPUserManager sharedUserManager]; + contactInfos = [um contactInfosForUserWithUIDorEmail: uid]; + + person = [iCalPerson new]; + [person autorelease]; + [person setCn: [contactInfos objectForKey: @"cn"]]; + [person setEmail: [contactInfos objectForKey: @"c_email"]]; + + return person; +} + - (NSString *) iCalStringForFreeBusyInfos: (NSArray *) _infos from: (NSCalendarDate *) _startDate to: (NSCalendarDate *) _endDate { - AgenorUserManager *um; + LDAPUserManager *um; NSString *uid; NSEnumerator *events; iCalCalendar *calendar; @@ -122,7 +139,6 @@ NSDictionary *info; iCalFreeBusyType type; - um = [AgenorUserManager sharedUserManager]; uid = [[self container] login]; calendar = [iCalCalendar groupWithTag: @"vcalendar"]; @@ -130,7 +146,7 @@ [calendar setVersion: @"2.0"]; freebusy = [iCalFreeBusy groupWithTag: @"vfreebusy"]; - [freebusy addToAttendees: [um iCalPersonWithUid: uid]]; + [freebusy addToAttendees: [self iCalPersonWithUid: uid]]; [freebusy setTimeStampAsDate: [NSCalendarDate calendarDate]]; [freebusy setStartDate: _startDate]; [freebusy setEndDate: _endDate]; @@ -138,7 +154,7 @@ /* ORGANIZER - strictly required but missing for now */ /* ATTENDEE */ -// person = [um iCalPersonWithUid: uid]; +// person = [self iCalPersonWithUid: uid]; // [person setTag: @"ATTENDEE"]; // [ms appendString: [person versitString]]; diff --git a/SoObjects/Appointments/SOGoTaskObject.m b/SoObjects/Appointments/SOGoTaskObject.m index 861b32c0f..cc15067f5 100644 --- a/SoObjects/Appointments/SOGoTaskObject.m +++ b/SoObjects/Appointments/SOGoTaskObject.m @@ -25,7 +25,7 @@ #import #import #import -#import +#import #import #import #import @@ -66,7 +66,7 @@ static NSString *mailTemplateDefaultLanguage = nil; /* iCal handling */ - (NSArray *)attendeeUIDsFromTask:(iCalToDo *)_task { - AgenorUserManager *um; + LDAPUserManager *um; NSMutableArray *uids; NSArray *attendees; unsigned i, count; @@ -80,7 +80,7 @@ static NSString *mailTemplateDefaultLanguage = nil; count = [attendees count]; uids = [NSMutableArray arrayWithCapacity:count + 1]; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; /* add organizer */ @@ -221,7 +221,7 @@ static NSString *mailTemplateDefaultLanguage = nil; - delete in removed folders - send iMIP mail for all folders not found */ -// AgenorUserManager *um; +// LDAPUserManager *um; // iCalCalendar *calendar; // iCalToDo *oldApt, *newApt; // // iCalToDoChanges *changes; @@ -239,7 +239,7 @@ static NSString *mailTemplateDefaultLanguage = nil; // reason:@"got no iCalendar content to store!"]; // } -// um = [AgenorUserManager sharedUserManager]; +// um = [LDAPUserManager sharedUserManager]; // /* handle old content */ diff --git a/SoObjects/Mailer/SOGoUser+Mail.m b/SoObjects/Mailer/SOGoUser+Mail.m index 2b3c6834f..00b5561ca 100644 --- a/SoObjects/Mailer/SOGoUser+Mail.m +++ b/SoObjects/Mailer/SOGoUser+Mail.m @@ -60,8 +60,8 @@ account = [self valueForKey:@"primaryIMAP4AccountString"]; identity = [[[SOGoMailIdentity alloc] init] autorelease]; - [identity setName:[self cn]]; - [identity setEmail:[self email]]; + [identity setName: [self cn]]; + [identity setEmail: [self primaryEmail]]; [identity setSentFolderName:[self agenorSentFolderForAccount:account]]; return identity; } diff --git a/UI/Common/UIxAclEditor.m b/UI/Common/UIxAclEditor.m index 11466cebb..12a45f503 100644 --- a/UI/Common/UIxAclEditor.m +++ b/UI/Common/UIxAclEditor.m @@ -26,7 +26,7 @@ #import #import #import -#import +#import #import #import @@ -67,13 +67,12 @@ - (NSString *) _displayNameForUID: (NSString *) uid { - AgenorUserManager *um; + LDAPUserManager *um; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; return [NSString stringWithFormat: @"%@ <%@>", - [um getCNForUID: uid], - [um getEmailForUID: uid]]; + [um getCNForUID: uid], [um getEmailForUID: uid]]; } - (NSString *) ownerName diff --git a/UI/Common/UIxFolderActions.h b/UI/Common/UIxFolderActions.h index 5a08a684b..88126ad38 100644 --- a/UI/Common/UIxFolderActions.h +++ b/UI/Common/UIxFolderActions.h @@ -25,16 +25,18 @@ #import -@class SOGoFolder; @class NSString; @class NSUserDefaults; @class NSMutableString; @class NSMutableDictionary; +@class LDAPUserManager; +@class SOGoFolder; + @interface UIxFolderActions : WODirectAction { SOGoFolder *clientObject; - AgenorUserManager *um; + LDAPUserManager *um; NSUserDefaults *ud; NSString *owner; NSString *login; diff --git a/UI/Common/UIxFolderActions.m b/UI/Common/UIxFolderActions.m index 4f5ff9e6b..25480d1b1 100644 --- a/UI/Common/UIxFolderActions.m +++ b/UI/Common/UIxFolderActions.m @@ -31,10 +31,10 @@ #import #import -#import -#import -#import -#import +#import +#import +#import +#import #import "UIxFolderActions.h" @@ -46,8 +46,10 @@ - (void) _setupContext { NSString *clientClass; + SOGoUser *activeUser; - login = [[context activeUser] login]; + activeUser = [context activeUser]; + login = [activeUser login]; clientObject = [self clientObject]; owner = [clientObject ownerInContext: nil]; @@ -59,8 +61,8 @@ else baseFolder = nil; - um = [AgenorUserManager sharedUserManager]; - ud = [um getUserSettingsForUID: login]; + um = [LDAPUserManager sharedUserManager]; + ud = [activeUser userSettings]; moduleSettings = [ud objectForKey: baseFolder]; if (!moduleSettings) { @@ -119,7 +121,8 @@ [self _setupContext]; email = [NSString stringWithFormat: @"%@ <%@>", - [um getCNForUID: owner], [um getEmailForUID: owner]]; + [um getCNForUID: owner], + [um getEmailForUID: owner]]; if ([baseFolder isEqualToString: @"Contacts"]) folderName = [NSString stringWithFormat: @"%@ (%@)", [clientObject nameInContainer], email]; diff --git a/UI/Common/UIxObjectActions.m b/UI/Common/UIxObjectActions.m index 143f677fe..277d1ac66 100644 --- a/UI/Common/UIxObjectActions.m +++ b/UI/Common/UIxObjectActions.m @@ -25,7 +25,7 @@ #import #import #import -#import +#import #import #import "UIxObjectActions.h" @@ -38,7 +38,7 @@ WORequest *request; NSString *uid, *email; unsigned int code; - AgenorUserManager *um; + LDAPUserManager *um; SOGoObject *clientObject; code = 403; @@ -46,7 +46,7 @@ uid = [request formValueForKey: @"uid"]; if ([uid length] > 0) { - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; email = [um getEmailForUID: uid]; if ([email length] > 0) { diff --git a/UI/Common/UIxUserRightsEditor.m b/UI/Common/UIxUserRightsEditor.m index d3792a232..35b697612 100644 --- a/UI/Common/UIxUserRightsEditor.m +++ b/UI/Common/UIxUserRightsEditor.m @@ -23,7 +23,7 @@ #import #import #import -#import +#import #import "UIxUserRightsEditor.h" @@ -54,9 +54,9 @@ - (NSString *) userDisplayName { - AgenorUserManager *um; + LDAPUserManager *um; - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; return [NSString stringWithFormat: @"%@ <%@>", [um getCNForUID: uid], @@ -67,7 +67,7 @@ { BOOL response; NSString *newUID, *email; - AgenorUserManager *um; + LDAPUserManager *um; SOGoObject *clientObject; response = NO; @@ -75,7 +75,7 @@ newUID = [[context request] formValueForKey: @"uid"]; if ([newUID length] > 0) { - um = [AgenorUserManager sharedUserManager]; + um = [LDAPUserManager sharedUserManager]; email = [um getEmailForUID: newUID]; if ([email length] > 0) { diff --git a/UI/Scheduler/UIxAppointmentEditor.m b/UI/Scheduler/UIxAppointmentEditor.m index 1ae856576..3c4d20e9f 100644 --- a/UI/Scheduler/UIxAppointmentEditor.m +++ b/UI/Scheduler/UIxAppointmentEditor.m @@ -28,7 +28,6 @@ #import #import -#import #import #import #import diff --git a/UI/Scheduler/UIxAppointmentView.m b/UI/Scheduler/UIxAppointmentView.m index 8adb3a9b5..4814f7140 100644 --- a/UI/Scheduler/UIxAppointmentView.m +++ b/UI/Scheduler/UIxAppointmentView.m @@ -22,9 +22,10 @@ #import "UIxAppointmentView.h" #import #import +#import #import #import -#import "UIxComponent+Agenor.h" +#import "UIxComponent+Scheduler.h" #import "common.h" @interface UIxAppointmentView (PrivateAPI) @@ -62,7 +63,7 @@ - (BOOL)isAttendeeActiveUser { NSString *email, *attEmail; - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; attendee = [self attendee]; attEmail = [attendee rfc822Email]; @@ -219,7 +220,7 @@ NSString *email; iCalPerson *organizer; - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; organizer = [[self appointment] organizer]; if (!organizer) return YES; // assume this is correct to do, right? return [[organizer rfc822Email] isEqualToString:email]; @@ -237,7 +238,7 @@ return YES; /* can access it if I'm invited :-) */ - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; partMails = [[[self appointment] participants] valueForKey:@"rfc822Email"]; return [partMails containsObject:email]; } diff --git a/UI/Scheduler/UIxCalView.m b/UI/Scheduler/UIxCalView.m index cf2947eb5..803dcb842 100644 --- a/UI/Scheduler/UIxCalView.m +++ b/UI/Scheduler/UIxCalView.m @@ -9,7 +9,7 @@ #import #import -#import "UIxComponent+Agenor.h" +#import "UIxComponent+Scheduler.h" #import "SoObjects/Appointments/SOGoAppointmentFolder.h" #import @@ -113,7 +113,7 @@ static BOOL shouldDisplayWeekend = NO; { count = [_apts count]; filtered = [[[NSMutableArray alloc] initWithCapacity: count] autorelease]; - email = [self emailForUser]; + email = [[context activeUser] primaryEmail]; for (i = 0; i < count; i++) { diff --git a/UI/Scheduler/UIxCalendarSelector.m b/UI/Scheduler/UIxCalendarSelector.m index 5903aecbf..7205bfec7 100644 --- a/UI/Scheduler/UIxCalendarSelector.m +++ b/UI/Scheduler/UIxCalendarSelector.m @@ -28,7 +28,6 @@ #import #import -#import #import #import #import diff --git a/UI/Scheduler/UIxTaskEditor.m b/UI/Scheduler/UIxTaskEditor.m index cc2627085..607e0adf9 100644 --- a/UI/Scheduler/UIxTaskEditor.m +++ b/UI/Scheduler/UIxTaskEditor.m @@ -28,7 +28,6 @@ #import #import -#import #import #import #import diff --git a/UI/Scheduler/UIxTaskView.m b/UI/Scheduler/UIxTaskView.m index 323034134..7cb11d117 100644 --- a/UI/Scheduler/UIxTaskView.m +++ b/UI/Scheduler/UIxTaskView.m @@ -24,7 +24,7 @@ #import #import #import -#import "UIxComponent+Agenor.h" +#import "UIxComponent+Scheduler.h" #import "common.h" @interface UIxTaskView (PrivateAPI) @@ -62,7 +62,7 @@ - (BOOL)isAttendeeActiveUser { NSString *email, *attEmail; - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; attendee = [self attendee]; attEmail = [attendee rfc822Email]; @@ -221,7 +221,7 @@ NSString *email; iCalPerson *organizer; - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; organizer = [[self task] organizer]; if (!organizer) return YES; // assume this is correct to do, right? return [[organizer rfc822Email] isEqualToString:email]; @@ -239,9 +239,9 @@ return YES; /* can access it if I'm invited :-) */ - email = [[[self context] activeUser] email]; + email = [[[self context] activeUser] primaryEmail]; partMails = [[[self task] participants] valueForKey:@"rfc822Email"]; - return [partMails containsObject:email]; + return [partMails containsObject: email]; } - (BOOL)canEditApt {