ModulesConstraints tests all values of a multi-valued attributes

pull/26/head
Skruppy 2014-03-15 15:10:26 +01:00
parent e2f192b793
commit 1c3f1af662
1 changed files with 8 additions and 9 deletions

View File

@ -887,7 +887,7 @@ static Class NSStringK;
intoLDIFRecord: (NSMutableDictionary *) ldifRecord
{
NSDictionary *constraints;
NSEnumerator *matches;
NSEnumerator *matches, *ldapValues;
NSString *currentMatch, *currentValue, *ldapValue;
BOOL result;
@ -897,16 +897,15 @@ static Class NSStringK;
if (constraints)
{
matches = [[constraints allKeys] objectEnumerator];
currentMatch = [matches nextObject];
while (result && currentMatch)
while (result == YES && (currentMatch = [matches nextObject]))
{
ldapValue = [[ldapEntry attributeWithName: currentMatch]
stringValueAtIndex: 0];
ldapValues = [[[ldapEntry attributeWithName: currentMatch] allStringValues] objectEnumerator];
currentValue = [constraints objectForKey: currentMatch];
if ([ldapValue caseInsensitiveMatches: currentValue])
currentMatch = [matches nextObject];
else
result = NO;
result = NO;
while (result == NO && (ldapValue = [ldapValues nextObject]))
if ([ldapValue caseInsensitiveMatches: currentValue])
result = YES;
}
}