[crans_utils] sanitize ldap

This commit is contained in:
Daniel STAN 2012-06-27 21:29:37 +02:00
parent 94cacc6bdf
commit 229863f4ba

View file

@ -110,3 +110,22 @@ def validate_name(value, more_chars=""):
else:
raise ValueError("Nom invalide ('%s')" % value)
def ldap_sanitize(s):
""" Échappe les caractères spéciaux ldap.
(Si vous avez une méthode plus propre pour coder ça, je suis preneur)
Todo: rajouter conversion pour caractère utf-8 multioctets ?
(cf http://blog.dzhuvinov.com/?p=585 )
"""
replace = {
'*': '\\2a',
'(': '\\28',
')': '\\29',
'\\': '\\5c',
'\x00': '\\00'}
def conv(c):
try: return replace[c]
except KeyError: return c
return "".join([conv(c) for c in s])