mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-11 11:25:12 +00:00
Monotone-Parent: 0e24f707625b8e960d18430aa904f3ec40c5dd2a
Monotone-Revision: d75ed56bb85ad0c1c37621595267a590aa9b60db Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-10-12T20:00:46 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -42,9 +42,10 @@ extern NSTimeZone *utcTZ;
|
||||
iCalCalendar *calendar;
|
||||
iCalEvent *event;
|
||||
NSTimeZone *timeZone;
|
||||
SOGoUser *user;
|
||||
NSString *senderEmail;
|
||||
NSData *globalObjectId;
|
||||
NSData *cleanGlobalObjectId;
|
||||
SOGoUser *user;
|
||||
BOOL alarmSet;
|
||||
iCalAlarm *alarm;
|
||||
BOOL itipSetup;
|
||||
@@ -54,9 +55,11 @@ extern NSTimeZone *utcTZ;
|
||||
|
||||
+ (id) wrapperWithICalEvent: (iCalEvent *) newEvent
|
||||
andUser: (SOGoUser *) newUser
|
||||
andSenderEmail: (NSString *) newSenderEmail
|
||||
inTimeZone: (NSTimeZone *) newTimeZone;
|
||||
- (id) initWithICalEvent: (iCalEvent *) newEvent
|
||||
andUser: (SOGoUser *) newUser
|
||||
andSenderEmail: (NSString *) newSenderEmail
|
||||
inTimeZone: (NSTimeZone *) newTimeZone;
|
||||
|
||||
/* getters */
|
||||
|
||||
@@ -77,12 +77,14 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
|
||||
+ (id) wrapperWithICalEvent: (iCalEvent *) newEvent
|
||||
andUser: (SOGoUser *) newUser
|
||||
andSenderEmail: (NSString *) newSenderEmail
|
||||
inTimeZone: (NSTimeZone *) newTimeZone
|
||||
{
|
||||
MAPIStoreAppointmentWrapper *wrapper;
|
||||
|
||||
wrapper = [[self alloc] initWithICalEvent: newEvent
|
||||
andUser: newUser
|
||||
andSenderEmail: newSenderEmail
|
||||
inTimeZone: newTimeZone];
|
||||
[wrapper autorelease];
|
||||
|
||||
@@ -96,6 +98,7 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
calendar = nil;
|
||||
event = nil;
|
||||
timeZone = nil;
|
||||
senderEmail = nil;
|
||||
globalObjectId = nil;
|
||||
cleanGlobalObjectId = nil;
|
||||
user = nil;
|
||||
@@ -110,16 +113,33 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
|
||||
- (void) _setupITIPContextFromAttendees
|
||||
{
|
||||
iCalPerson *attendee;
|
||||
iCalPerson *attendee = nil;
|
||||
NSArray *attendees;
|
||||
|
||||
attendee = [event userAsAttendee: user];
|
||||
if (attendee)
|
||||
{
|
||||
method = @"REPLY";
|
||||
partstat = [attendee participationStatus];
|
||||
}
|
||||
else if ([event userIsOrganizer: user])
|
||||
method = @"REQUEST";
|
||||
else if ([event userIsOrganizer: user])
|
||||
{
|
||||
if (senderEmail)
|
||||
attendee = [event findAttendeeWithEmail: senderEmail];
|
||||
if (!attendee)
|
||||
{
|
||||
attendees = [event attendees];
|
||||
if ([attendees count] == 1)
|
||||
attendee = [attendees objectAtIndex: 0];
|
||||
}
|
||||
if (attendee)
|
||||
{
|
||||
method = @"REPLY";
|
||||
partstat = [attendee participationStatus];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logWithFormat: @"no attendee matching sender found"];
|
||||
method = nil;
|
||||
}
|
||||
}
|
||||
else
|
||||
method = nil;
|
||||
|
||||
@@ -155,6 +175,7 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
|
||||
- (id) initWithICalEvent: (iCalEvent *) newEvent
|
||||
andUser: (SOGoUser *) newUser
|
||||
andSenderEmail: (NSString *) newSenderEmail
|
||||
inTimeZone: (NSTimeZone *) newTimeZone
|
||||
{
|
||||
if ((self = [self init]))
|
||||
@@ -163,6 +184,7 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
ASSIGN (calendar, [event parent]);
|
||||
ASSIGN (timeZone, newTimeZone);
|
||||
ASSIGN (user, newUser);
|
||||
ASSIGN (senderEmail, newSenderEmail);
|
||||
[self _setupITIPContext];
|
||||
}
|
||||
|
||||
@@ -174,9 +196,10 @@ static NSCharacterSet *hexCharacterSet = nil;
|
||||
[calendar release];
|
||||
[event release];
|
||||
[timeZone release];
|
||||
[user release];
|
||||
[senderEmail release];
|
||||
[globalObjectId release];
|
||||
[cleanGlobalObjectId release];
|
||||
[user release];
|
||||
[alarm release];
|
||||
[method release];
|
||||
[super dealloc];
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
ASSIGN (appointmentWrapper,
|
||||
[MAPIStoreAppointmentWrapper wrapperWithICalEvent: event
|
||||
andUser: [[self context] activeUser]
|
||||
andSenderEmail: nil
|
||||
inTimeZone: [self ownerTimeZone]]);
|
||||
}
|
||||
|
||||
|
||||
@@ -251,10 +251,10 @@ _compareBodyKeysByPriority (id entry1, id entry2, void *data)
|
||||
|
||||
- (MAPIStoreAppointmentWrapper *) _appointmentWrapper
|
||||
{
|
||||
NSArray *events;
|
||||
NSArray *events, *from;
|
||||
iCalCalendar *calendar;
|
||||
iCalEvent *event;
|
||||
NSString *stringValue;
|
||||
NSString *stringValue, *senderEmail;
|
||||
|
||||
if (!appointmentWrapper)
|
||||
{
|
||||
@@ -267,9 +267,15 @@ _compareBodyKeysByPriority (id entry1, id entry2, void *data)
|
||||
if ([events count] > 0)
|
||||
{
|
||||
event = [events objectAtIndex: 0];
|
||||
from = [sogoObject fromEnvelopeAddresses];
|
||||
if ([from count] > 0)
|
||||
senderEmail = [[from objectAtIndex: 0] email];
|
||||
else
|
||||
senderEmail = nil;
|
||||
appointmentWrapper = [MAPIStoreAppointmentWrapper
|
||||
wrapperWithICalEvent: event
|
||||
andUser: [[self context] activeUser]
|
||||
andSenderEmail: senderEmail
|
||||
inTimeZone: [self ownerTimeZone]];
|
||||
[appointmentWrapper retain];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user