Fix search filter generator in ldap2 for NOT operator.

Search filters generated from attributes with multiple values
were incorrect when the NOT operator was used (ldap.MATCH_NONE).
This commit is contained in:
Pavel Zuna
2010-11-30 21:53:28 -05:00
committed by Rob Crittenden
parent 4c09809ea8
commit 8bd9f1333f

View File

@@ -452,6 +452,12 @@ class ldap2(CrudBackend, Encoder):
"""
if isinstance(value, (list, tuple)):
flts = []
if rules == self.MATCH_NONE:
for v in value:
flts.append(
self.make_filter_from_attr(attr, v, exact=exact)
)
return '(!%s)' % self.combine_filters(flts)
for v in value:
flts.append(self.make_filter_from_attr(attr, v, rules, exact))
return self.combine_filters(flts, rules)