From 36bde4e042ec48a55ce7082a328465f842526211 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 25 Jul 2012 15:31:40 +0000 Subject: [PATCH] See ChangeLog. Monotone-Parent: 20ed9d28f7e0284da6a03803be4b44515ff13153 Monotone-Revision: 84638520098e5b0e2cebc6efed95a3c49beac705 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-07-25T15:31:40 --- ChangeLog | 4 ++++ SoObjects/SOGo/SOGoSieveManager.m | 36 +++++++++++++++---------------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 285c1790f..436e5362a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2012-07-25 Francis Lachapelle + * SoObjects/SOGo/SOGoSieveManager.m + (-updateFiltersForLogin:authname:password:account:): write the + filters before the vacation auto-reply. + * SoObjects/Appointments/SOGoCalendarComponent.m (-sendEMailUsingTemplateNamed:forObject:previousObject:toAttendees:withType:): fixed the from header when the updated event has no mode organizer. diff --git a/SoObjects/SOGo/SOGoSieveManager.m b/SoObjects/SOGo/SOGoSieveManager.m index e20c1fd8b..c3dc84636 100644 --- a/SoObjects/SOGo/SOGoSieveManager.m +++ b/SoObjects/SOGo/SOGoSieveManager.m @@ -644,13 +644,26 @@ static NSString *sieveScriptName = @"sogo"; script = [NSMutableString string]; - // Right now, we handle Sieve filters here and only for vacation - // and forwards. Traditional filters support (for fileinto, for - // example) will be added later. - values = [ud vacationOptions]; + // We first handle filters + filterScript = [self sieveScriptWithRequirements: req]; + if (filterScript) + { + if ([filterScript length]) + { + b = YES; + [script appendString: filterScript]; + } + } + else + { + NSLog(@"Sieve generation failure: %@", [self lastScriptError]); + return NO; + } // We handle vacation messages. // See http://ietfreport.isoc.org/idref/draft-ietf-sieve-vacation/ + values = [ud vacationOptions]; + if (values && [[values objectForKey: @"enabled"] boolValue]) { NSArray *addresses; @@ -717,21 +730,6 @@ static NSString *sieveScriptName = @"sogo"; [script appendString: @"keep;\r\n"]; } - filterScript = [self sieveScriptWithRequirements: req]; - if (filterScript) - { - if ([filterScript length]) - { - b = YES; - [script appendString: filterScript]; - } - } - else - { - NSLog(@"Sieve generation failure: %@", [self lastScriptError]); - return NO; - } - if ([req count]) { header = [NSString stringWithFormat: @"require [\"%@\"];\r\n",