diff --git a/lc_ldap.py b/lc_ldap.py index 01b685e..0c1319c 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -55,6 +55,7 @@ if not "/usr/scripts/" in sys.path: sys.path.append('/usr/scripts/') import gestion.config as config +import cranslib.deprecated # A priori, ldif_to_uldif et ldif_to_cldif sont obsolètes, # du fait de l'apparition de AttrsDict dans attributs.py @@ -166,11 +167,14 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object): dn = res[0][0] return dn - def search(self, filterstr='(objectClass=*)', mode='ro', dn=variables.base_dn, scope=ldap.SCOPE_SUBTREE, sizelimit=1000): + def search(self, filterstr=u'(objectClass=*)', mode='ro', dn=variables.base_dn, scope=ldap.SCOPE_SUBTREE, sizelimit=1000): """La fonction de recherche dans la base LDAP qui renvoie un liste de :py:class:`CransLdapObject`. On utilise la feature de ``sizelimit`` de ``python-ldap``""" - ldap_res = self.search_ext_s(dn, scope, filterstr, sizelimit=sizelimit) + if not isinstance(filterstr, unicode): + cranslib.deprecated.usage("search ne devrait utiliser que des unicode comme filtre(%r)" % filterstr, level=3) + filterstr = filterstr.decode('utf-8') + ldap_res = self.search_ext_s(dn, scope, filterstr.encode('utf-8'), sizelimit=sizelimit) ret = [] for dn, ldif in ldap_res: uldif = ldif_to_uldif(ldif)