From 8bd9f1333fe87e31c93632959fec38bded38e2d5 Mon Sep 17 00:00:00 2001 From: Pavel Zuna Date: Tue, 30 Nov 2010 21:53:28 -0500 Subject: 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). --- ipaserver/plugins/ldap2.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ipaserver/plugins') diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index 83a77069..918d8304 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -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) -- cgit