From be67998283329207e5f82a064d6de8d9fb455a7d Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Wed, 5 Jan 2011 20:59:47 +0000 Subject: [PATCH] See ChangeLog Monotone-Parent: d7aebce05726f8e7de4e1e755b2143939a487c9e Monotone-Revision: f661875c0ea83ef886f78e3b498bc05b1d105e9a Monotone-Author: ludovic@Sophos.ca Monotone-Date: 2011-01-05T20:59:47 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 8 +++ Documentation/SOGo Installation Guide.odt | Bin 149393 -> 148961 bytes SoObjects/SOGo/SQLSource.h | 2 +- SoObjects/SOGo/SQLSource.m | 66 +++++++++++++++++++--- 4 files changed, 68 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd77e6e72..9569e1620 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-01-05 Ludovic Marcotte + + * SoObjects/SOGo/SQLSource.m - we now honor the "mail" column + and we also support "MailFieldNames" in the SQL source - which + is essentially and array of column names holding additonnal email + addresses of users (beside the "mail" column). Also updated + the documentation to reflect this change. + 2011-01-05 Francis Lachapelle * UI/WebServerResources/generic.js (showConfirmDialog): buttons diff --git a/Documentation/SOGo Installation Guide.odt b/Documentation/SOGo Installation Guide.odt index 892f28eba15754e1c3999c001f2c87e21d7d06c9..33dd8729b34e8b72707f04bc8051b12ada59ce47 100644 GIT binary patch delta 34078 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 diff --git a/SoObjects/SOGo/SQLSource.h b/SoObjects/SOGo/SQLSource.h index 8d08a1fdc..18900cf5b 100644 --- a/SoObjects/SOGo/SQLSource.h +++ b/SoObjects/SOGo/SQLSource.h @@ -1,6 +1,6 @@ /* SQLSource.h - this file is part of SOGo * - * Copyright (C) 2009-2010 Inverse inc. + * Copyright (C) 2009-2011 Inverse inc. * * Author: Ludovic Marcotte * diff --git a/SoObjects/SOGo/SQLSource.m b/SoObjects/SOGo/SQLSource.m index 1ddf7e63e..cf6fa785a 100644 --- a/SoObjects/SOGo/SQLSource.m +++ b/SoObjects/SOGo/SQLSource.m @@ -1,6 +1,6 @@ /* SQLSource.h - this file is part of SOGo * - * Copyright (C) 2009-2010 Inverse inc. + * Copyright (C) 2009-2011 Inverse inc. * * Author: Ludovic Marcotte * @@ -220,6 +220,26 @@ return NO; } +- (NSString *) _whereClauseFromArray: (NSArray *) theArray + value: (NSString *) theValue + exact: (BOOL) theBOOL +{ + NSMutableString *s; + int i; + + s = [NSMutableString string]; + + for (i = 0; i < [theArray count]; i++) + { + if (theBOOL) + [s appendFormat: @" OR LOWER(%@) = '%@'", [theArray objectAtIndex: i], theValue]; + else + [s appendFormat: @" OR LOWER(%@) LIKE '%%%@%%'", [theArray objectAtIndex: i], theValue]; + } + + return s; +} + - (NSDictionary *) _lookupContactEntry: (NSString *) theID considerEmail: (BOOL) b { @@ -242,15 +262,24 @@ @" WHERE c_uid = '%@'"), [_viewURL gcsTableName], theID]; else - sql = [NSString stringWithFormat: (@"SELECT *" - @" FROM %@" - @" WHERE c_uid = '%@' OR" - @" LOWER(mail) = '%@'"), - [_viewURL gcsTableName], theID, [theID lowercaseString]]; - + { + sql = [NSString stringWithFormat: (@"SELECT *" + @" FROM %@" + @" WHERE c_uid = '%@' OR" + @" LOWER(mail) = '%@'"), + [_viewURL gcsTableName], theID, [theID lowercaseString]]; + + if (_mailFields && [_mailFields count] > 0) + { + sql = [sql stringByAppendingString: [self _whereClauseFromArray: _mailFields value: [theID lowercaseString] exact: YES]]; + } + } + ex = [channel evaluateExpressionX: sql]; if (!ex) { + NSMutableArray *emails; + response = [[channel fetchAttributes: [channel describeResults: NO] withZone: NULL] mutableCopy]; [response autorelease]; @@ -260,6 +289,24 @@ // constraints right now over a SQL backend. [response setObject: [NSNumber numberWithBool: YES] forKey: @"CalendarAccess"]; [response setObject: [NSNumber numberWithBool: YES] forKey: @"MailAccess"]; + + // We populate all mail fields + emails = [NSMutableArray array]; + + if ([response objectForKey: @"mail"]) + [emails addObject: [response objectForKey: @"mail"]]; + + if (_mailFields && [_mailFields count] > 0) + { + NSString *s; + int i; + + for (i = 0; i < [_mailFields count]; i++) + if ((s = [response objectForKey: [_mailFields objectAtIndex: i]])) + [emails addObject: s]; + } + + [response setObject: emails forKey: @"c_emails"]; } else [self errorWithFormat: @"could not run SQL '%@': %@", sql, ex]; @@ -352,6 +399,11 @@ [_viewURL gcsTableName], lowerFilter, lowerFilter]; + if (_mailFields && [_mailFields count] > 0) + { + sql = [sql stringByAppendingString: [self _whereClauseFromArray: _mailFields value: lowerFilter exact: NO]]; + } + ex = [channel evaluateExpressionX: sql]; if (!ex) {