From 0685bba9a595c0783087660c67c54396ed3740a8 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Sat, 29 Sep 2007 00:23:23 +0000 Subject: [PATCH] Monotone-Parent: ebf06451111f1c4e8049341f943198ffce019019 Monotone-Revision: 9c6dc6a8ae6889a9f5df735cb84d50ea6a07241d Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2007-09-29T00:23:23 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 10 ++++++++++ NEWS | 2 +- SoObjects/Mailer/SOGoDraftObject.m | 11 +++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f3366640c..76536817d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-09-28 Francis Lachapelle + + * SoObjects/Mailer/SOGoDraftObject.m + ([SOGoDraftObject -isValidAttachmentName:_name]): removed + constraint on space in file name. + ([SOGoDraftObject -saveAttachment:_attachwithMetadata:metadata]): + now removes from file name all characters preceding a backslash. + This happens with IE7 because the complete attachment file path + is sent. + 2007-09-25 Francis Lachapelle * SoObjects/Appointments/SOGoAptMailNotification.m diff --git a/NEWS b/NEWS index 0a9f33ec2..04f109bf9 100644 --- a/NEWS +++ b/NEWS @@ -11,7 +11,7 @@ - added checkmarks in live search options popup menus; - added browser detection with recommanded alternatives; - support for resizable columns in tables; -- improved IE7 and Safari support: attendees selector; +- improved IE7 and Safari support: attendees selector, email file attachments; - countless bugfixes; 0.9.0-20070824 diff --git a/SoObjects/Mailer/SOGoDraftObject.m b/SoObjects/Mailer/SOGoDraftObject.m index 173e62d09..3aa25f15e 100644 --- a/SoObjects/Mailer/SOGoDraftObject.m +++ b/SoObjects/Mailer/SOGoDraftObject.m @@ -578,7 +578,7 @@ static BOOL showTextAttachmentsInline = NO; - (BOOL) isValidAttachmentName: (NSString *) _name { - static NSString *sescape[] = { @"/", @"..", @"~", @"\"", @"'", @" ", nil }; + static NSString *sescape[] = { @"/", @"..", @"~", @"\"", @"'", nil }; unsigned i; NSRange r; @@ -611,7 +611,8 @@ static BOOL showTextAttachmentsInline = NO; withMetadata: (NSDictionary *) metadata { NSString *p, *name, *mimeType; - + NSRange r; + if (![_attach isNotNull]) { return [NSException exceptionWithHTTPStatus:400 /* Bad Request */ reason: @"Missing attachment content!"]; @@ -621,7 +622,13 @@ static BOOL showTextAttachmentsInline = NO; return [NSException exceptionWithHTTPStatus:500 /* Server Error */ reason: @"Could not create folder for draft!"]; } + name = [metadata objectForKey: @"filename"]; + r = [name rangeOfString: @"\\" + options: NSBackwardsSearch]; + if (r.length > 0) + name = [name substringFromIndex: r.location + 1]; + if (![self isValidAttachmentName: name]) return [self invalidAttachmentNameError: name];