From 88857d6e4e0945059941524c6c497acb860a368b Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 7 Apr 2010 15:06:07 +0000 Subject: [PATCH] Monotone-Parent: 7346726a0f54ccee6cdcb46da66c4b48bfa8ab67 Monotone-Revision: fa3da496f8fda4380291c10cbb009ed34be0c475 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-04-07T15:06:07 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 ++++ UI/MailPartViewers/UIxMailPartICalActions.m | 27 ++++++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c7a355d9..68ada5331 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-07 Wolfgang Sourdeau + * UI/MailPartViewers/UIxMailPartICalActions.m + (_eventObjectWithUID:forUser:): we check that the target event + exists only in the specified user's calendar, as it may already + exists in subcribed calendars belonging to other attendees. + * SoObjects/Mailer/SOGoMailFolder.m (-toManyRelationshipKeys): we now check if the mailbox exists before returning the message identifiers. diff --git a/UI/MailPartViewers/UIxMailPartICalActions.m b/UI/MailPartViewers/UIxMailPartICalActions.m index fb9b9fa67..27020e8bf 100644 --- a/UI/MailPartViewers/UIxMailPartICalActions.m +++ b/UI/MailPartViewers/UIxMailPartICalActions.m @@ -79,24 +79,29 @@ SOGoAppointmentObject *eventObject; NSArray *folders; NSEnumerator *e; - NSString *cname; + NSString *cname, *userLogin; eventObject = nil; + userLogin = [user login]; + folders = [[user calendarsFolderInContext: context] subFolders]; e = [folders objectEnumerator]; - while ( eventObject == nil && (folder = [e nextObject]) ) + while (eventObject == nil && (folder = [e nextObject])) { - cname = [folder resourceNameForEventUID: uid]; - if (cname) - { - eventObject = [folder lookupName: cname - inContext: context acquire: NO]; - if (![eventObject isKindOfClass: [SOGoAppointmentObject class]]) - eventObject = nil; - } + if ([[folder ownerInContext: nil] isEqualToString: userLogin]) + { + cname = [folder resourceNameForEventUID: uid]; + if (cname) + { + eventObject = [folder lookupName: cname inContext: context + acquire: NO]; + if (![eventObject isKindOfClass: [NSException class]]) + eventObject = nil; + } + } } - + if (!eventObject) { folder = [user personalCalendarFolderInContext: context];