Monotone-Parent: befe03897e161f1796e6bb4fd47e4ff7f46528ab

Monotone-Revision: 78e8177b7871651ba9b05f971e1b40376fb5e49d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2009-09-11T14:31:02
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2009-09-11 14:31:02 +00:00
parent a77bd3ded2
commit b5dfe674de
1 changed files with 15 additions and 6 deletions

View File

@ -424,8 +424,10 @@ static NSLock *lock;
binddn: userDN binddn: userDN
credentials: passwordToCheck]; credentials: passwordToCheck];
NS_HANDLER NS_HANDLER
NS_ENDHANDLER ;
} NS_ENDHANDLER
;
}
[bindConnection release]; [bindConnection release];
} }
} }
@ -473,7 +475,8 @@ static NSLock *lock;
- (EOQualifier *) _qualifierForUIDFilter: (NSString *) uid - (EOQualifier *) _qualifierForUIDFilter: (NSString *) uid
{ {
NSString *mailFormat, *fieldFormat, *escapedUid; NSString *mailFormat, *fieldFormat, *escapedUid, *currentField;
NSEnumerator *bindFieldsEnum;
NSMutableString *qs; NSMutableString *qs;
escapedUid = SafeLDAPCriteria (uid); escapedUid = SafeLDAPCriteria (uid);
@ -481,9 +484,15 @@ static NSLock *lock;
fieldFormat = [NSString stringWithFormat: @"(%%@='%@')", escapedUid]; fieldFormat = [NSString stringWithFormat: @"(%%@='%@')", escapedUid];
mailFormat = [[mailFields stringsWithFormat: fieldFormat] mailFormat = [[mailFields stringsWithFormat: fieldFormat]
componentsJoinedByString: @" OR "]; componentsJoinedByString: @" OR "];
qs = [NSMutableString string]; qs = [NSMutableString stringWithFormat: @"(%@='%@') OR %@",
UIDField, escapedUid, mailFormat];
[qs appendFormat: (@"(%@='%@') OR %@"), UIDField, escapedUid, mailFormat]; if (bindFields)
{
bindFieldsEnum = [[bindFields componentsSeparatedByString: @","]
objectEnumerator];
while ((currentField = [bindFieldsEnum nextObject]))
[qs appendFormat: @" OR (%@='%@')", currentField, escapedUid];
}
if (_filter && [_filter length]) if (_filter && [_filter length])
[qs appendFormat: @" AND %@", _filter]; [qs appendFormat: @" AND %@", _filter];