diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 367d0f19..0a04b997 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -502,7 +502,7 @@ class crans_ldap: # Existe déja => rien à faire pass - def search(self,expression,mode=''): + def search(self, expression, mode=''): """ Recherche dans la base LDAP, expression est une chaîne : une expression : champ1=expr1 champ2=expr2 champ3!=expr3.... @@ -520,7 +520,10 @@ class crans_ldap: if not expression: return [] - + + # On échappe les caractères spéciaux + expression = expression.replace('\\', '\\\\').replace('(', '\\(').replace(')', '\\)') + # Il faut un filtre par type d'objet de la base filtres = self.auto_search_champs.keys() result={'adherent': [], 'machine': [], 'club': []}