mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-03-27 17:12:43 +00:00
Monotone-Parent: 54cc41b15e02fc61bfa80e7db07aeb97e541fdfc
Monotone-Revision: 3c8a49fe7ef93ec55aaeef9dd064be1de6052cfe Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2012-03-21T15:50:07
This commit is contained in:
13
ChangeLog
13
ChangeLog
@@ -1,3 +1,16 @@
|
||||
2012-03-21 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoUserManager.m (_compactAndCompleteContacts:):
|
||||
if "mail" is an array, all values are added to "c_emails".
|
||||
|
||||
* SoObjects/Contacts/SOGoContactSourceFolder.m
|
||||
(_flattenedRecord:): if "mail" is an array, we only take the first
|
||||
value of it.
|
||||
|
||||
* SoObjects/Contacts/SOGoContactLDIFEntry.m (-simplifiedRecord):
|
||||
new record guaranteeing that all array values have been stripped
|
||||
and converted to strings.
|
||||
|
||||
2012-03-20 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* SoObjects/Mailer/SOGoMailObject+Draft.m
|
||||
|
||||
@@ -76,6 +76,11 @@
|
||||
return [[self vCard] asLDIFRecord];
|
||||
}
|
||||
|
||||
- (NSDictionary *) simplifiedLDIFRecord
|
||||
{
|
||||
return [self ldifRecord];
|
||||
}
|
||||
|
||||
- (BOOL) hasPhoto
|
||||
{
|
||||
return ([[self vCard] firstChildWithTag: @"photo"] != nil);
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
[vcard setProdID: [NSString
|
||||
stringWithFormat: @"-//Inverse inc./SOGo %@//EN",
|
||||
SOGoVersion]];
|
||||
[vcard updateFromLDIFRecord: [self ldifRecord]];
|
||||
[vcard updateFromLDIFRecord: [self simplifiedLDIFRecord]];
|
||||
|
||||
return vcard;
|
||||
}
|
||||
@@ -115,6 +115,37 @@
|
||||
return ldifEntry;
|
||||
}
|
||||
|
||||
- (NSDictionary *) simplifiedLDIFRecord
|
||||
{
|
||||
NSMutableDictionary *newRecord;
|
||||
NSArray *keys;
|
||||
NSUInteger count, max;
|
||||
NSString *key;
|
||||
id value;
|
||||
|
||||
newRecord = [[self ldifRecord] mutableCopy];
|
||||
[newRecord autorelease];
|
||||
|
||||
keys = [newRecord allKeys];
|
||||
max = [keys count];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
key = [keys objectAtIndex: count];
|
||||
value = [newRecord objectForKey: key];
|
||||
if ([value isKindOfClass: [NSArray class]]
|
||||
&& ![key isEqualToString: @"objectclass"])
|
||||
{
|
||||
if ([value count] > 0)
|
||||
[newRecord setObject: [value objectAtIndex: 0]
|
||||
forKey: key];
|
||||
else
|
||||
[newRecord removeObjectForKey: key];
|
||||
}
|
||||
}
|
||||
|
||||
return newRecord;
|
||||
}
|
||||
|
||||
- (BOOL) hasPhoto
|
||||
{
|
||||
return NO;
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
/* web editing */
|
||||
- (void) setLDIFRecord: (NSDictionary *) newLDIFRecord;
|
||||
- (NSDictionary *) ldifRecord;
|
||||
- (NSDictionary *) simplifiedLDIFRecord;
|
||||
|
||||
- (NSException *) save;
|
||||
- (NSException *) delete;
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
- (NSDictionary *) _flattenedRecord: (NSDictionary *) oldRecord
|
||||
{
|
||||
NSMutableDictionary *newRecord;
|
||||
NSString *data;
|
||||
id data;
|
||||
NSObject <SOGoSource> *recordSource;
|
||||
|
||||
newRecord = [NSMutableDictionary dictionaryWithCapacity: 8];
|
||||
@@ -232,6 +232,13 @@
|
||||
data = [oldRecord objectForKey: @"mail"];
|
||||
if (!data)
|
||||
data = @"";
|
||||
else if ([data isKindOfClass: [NSArray class]])
|
||||
{
|
||||
if ([data count] > 0)
|
||||
data = [data objectAtIndex: 0];
|
||||
else
|
||||
data = @"";
|
||||
}
|
||||
[newRecord setObject: data forKey: @"c_mail"];
|
||||
|
||||
data = [oldRecord objectForKey: @"nsaimid"];
|
||||
|
||||
@@ -816,11 +816,12 @@
|
||||
{
|
||||
NSMutableDictionary *compactContacts, *returnContact;
|
||||
NSDictionary *userEntry;
|
||||
NSArray *newContacts;
|
||||
NSArray *newContacts, *allEmails;
|
||||
NSMutableArray *emails;
|
||||
NSString *uid, *email, *info;
|
||||
NSNumber *isGroup;
|
||||
id <SOGoSource> source;
|
||||
NSUInteger count, max;
|
||||
|
||||
compactContacts = [NSMutableDictionary dictionary];
|
||||
while ((userEntry = [contacts nextObject]))
|
||||
@@ -851,7 +852,17 @@
|
||||
[returnContact setObject: emails forKey: @"emails"];
|
||||
}
|
||||
email = [userEntry objectForKey: @"mail"];
|
||||
if (email && ![emails containsObject: email])
|
||||
if ([email isKindOfClass: [NSArray class]])
|
||||
{
|
||||
allEmails = (NSArray *) email;
|
||||
max = [allEmails count];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
email = [allEmails objectAtIndex: count];
|
||||
[emails addObjectUniquely: email];
|
||||
}
|
||||
}
|
||||
else if (email && ![emails containsObject: email])
|
||||
[emails addObject: email];
|
||||
email = [userEntry objectForKey: @"mozillasecondemail"];
|
||||
if (email && ![emails containsObject: email])
|
||||
|
||||
@@ -88,7 +88,7 @@ static Class SOGoContactGCSEntryK = Nil;
|
||||
|
||||
if (!ldifRecord)
|
||||
{
|
||||
clientLDIFRecord = [[self clientObject] ldifRecord];
|
||||
clientLDIFRecord = [[self clientObject] simplifiedLDIFRecord];
|
||||
ldifRecord = [clientLDIFRecord mutableCopy];
|
||||
queryValue = [self queryParameterForKey: @"contactEmail"];
|
||||
if ([queryValue length] > 0)
|
||||
|
||||
Reference in New Issue
Block a user