summaryrefslogtreecommitdiffstats
path: root/ipaserver/plugins/ldap2.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipaserver/plugins/ldap2.py')
-rw-r--r--ipaserver/plugins/ldap2.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
index 5c401829..32a1eccb 100644
--- a/ipaserver/plugins/ldap2.py
+++ b/ipaserver/plugins/ldap2.py
@@ -45,6 +45,7 @@ from ldap.controls import LDAPControl
from ldap.functions import explode_dn
from ipalib.dn import DN
from ipalib import _
+from ipalib.parameters import Bool
import krbV
@@ -62,6 +63,22 @@ MEMBERS_INDIRECT = 2
# SASL authentication mechanism
SASL_AUTH = _ldap_sasl.sasl({}, 'GSSAPI')
+# OID 1.3.6.1.4.1.1466.115.121.1.7 (Boolean) syntax encoding
+def _encode_bool(self, value):
+ def encode_bool_value(value):
+ if value:
+ return u'TRUE'
+ else:
+ return u'FALSE'
+
+ if type(value) in (tuple, list):
+ return tuple(encode_bool_value(v) for v in value)
+ else:
+ return encode_bool_value(value)
+
+# set own Bool parameter encoder
+Bool._encode = _encode_bool
+
# universal LDAPError handler
def _handle_errors(e, **kw):
"""