From 21010aa334529e24c78e7c5d83502088a87cbecf Mon Sep 17 00:00:00 2001 From: glondu Date: Wed, 8 Mar 2006 14:17:14 +0100 Subject: [PATCH] Les caractres ')', '(', '*', et '\' on une signification spciale dans une requte LDAP. darcs-hash:20060308131714-68412-4c3ac80b020bd8ddab57eca396c23c583aa30764.gz --- gestion/ldap_crans.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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': []}