From 9540bc572cb9dcbf529a86101e24f46e0bf5d0c5 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Tue, 2 Jul 2013 14:42:59 +0200 Subject: [PATCH] Search by unicode --- attributs.py | 11 +++++------ lc_ldap.py | 4 ++-- objets.py | 8 ++++---- test.py | 8 ++++---- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/attributs.py b/attributs.py index 760d07c..accbcc6 100644 --- a/attributs.py +++ b/attributs.py @@ -238,7 +238,7 @@ class Attr(object): if unicode(self) in liste_exclue: return if self.unique: - res = self.conn.search('%s=%s' % (attr, str(self))) + res = self.conn.search(u'%s=%s' % (attr, str(self))) if res: raise UniquenessError("%s déjà existant" % attr, [r.dn for r in res]) @@ -467,7 +467,7 @@ class mail(Attr): if res: raise ValueError("Le mail %s est déjà pris." % (str(self))) else: - check = self.conn.search("mail=%s" % mail) + check = self.conn.search(u'mail=%s' % mail) if len(check) >= 1: raise ValueError("Le mail %s est déjà pris." % (str(self))) @@ -639,7 +639,7 @@ class host(dnsAttr): if str(self) in liste_exclue: return if attr in ["host", "hostAlias"]: - res = self.conn.search('(|(host=%s)(hostAlias=%s))' % ((str(self),)*2)) + res = self.conn.search(u'(|(host=%s)(hostAlias=%s))' % ((str(self),)*2)) if res: raise ValueError("Hôte déjà existant", [r.dn for r in res]) @@ -749,7 +749,6 @@ class rid(Attr): continue else: continue - self.value = rid def __unicode__(self): @@ -930,7 +929,7 @@ class responsable(Attr): return self._value else: try: - res = self.conn.search('aid=%s' % self.__value)[0] + res = self.conn.search(u'aid=%s' % self.__value)[0] except IndexError: raise ValueError("get_respo: L'adherent %s n'existe pas ou plus" % (self.__value)) self._value = res @@ -966,7 +965,7 @@ class imprimeurClub(Attr): return self._value else: try: - res = self.conn.search('aid=%s' % int(self.__value))[0] + res = self.conn.search(u'aid=%s' % int(self.__value))[0] except IndexError: raise ValueError("get_imprimeur: L'adhérent aid=%r n'existe pas ou plus" % self.__value) self._value = res diff --git a/lc_ldap.py b/lc_ldap.py index a76841e..0bbde0c 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -113,7 +113,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object): raise ValueError("Même root doit préciser qui il est pour se connecter à la base LDAP.") self.current_login = user else: - current_user = self.search("uid=%s" % user) + current_user = self.search(u'uid=%s' % user) if len(current_user) != 1: raise ValueError("L'utilisateur %s n'est pas présent dans la base en *1* exemplaire." % user) else: @@ -233,7 +233,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object): if login is None: login = self.current_login #adm, serveurs, bornes, wifi, adherents, gratuit ou personnel-ens""" - owner = self.search('objectClass=*', dn=parent, scope=0)[0] + owner = self.search(u'objectClass=*', dn=parent, scope=0)[0] if realm in ["adm", "serveurs", "serveurs-v6", "adm-v6"]: uldif['objectClass'] = [u'machineCrans'] diff --git a/objets.py b/objets.py index 40d6e20..7879dbb 100644 --- a/objets.py +++ b/objets.py @@ -673,13 +673,13 @@ class adherent(proprio): def clubs(self): """Renvoie la liste des clubs dont l'adherent est responsable""" if self._clubs is None: - self._clubs = self.conn.search('responsable=%s' % self['aid'][0], scope = 1, mode=self.mode) + self._clubs = self.conn.search(u'responsable=%s' % self['aid'][0], scope = 1, mode=self.mode) return self._clubs def imprimeur_clubs(self): """Renvoie la liste des clubs dont l'adherent est imprimeur""" if self._imprimeur_clubs is None: - self._imprimeur_clubs = self.conn.search('imprimeurClub=%s' % self['aid'][0], scope = 1, mode=self.mode) + self._imprimeur_clubs = self.conn.search(u'imprimeurClub=%s' % self['aid'][0], scope = 1, mode=self.mode) return self._imprimeur_clubs def compte(self, login = None, uidNumber=0, hash_pass = '', shell=config.login_shell): @@ -721,14 +721,14 @@ class adherent(proprio): self['userPassword'] = [unicode(hash_pass)] if uidNumber: - if self.conn.search('(uidNumber=%s)' % uidNumber): + if self.conn.search(u'(uidNumber=%s)' % uidNumber): raise ValueError(u'uidNumber pris') else: pool_uid = range(1001, 9999) random.shuffle(pool_uid) while len(pool_uid) > 0: uidNumber = pool_uid.pop() # On choisit un uid - if not self.conn.search('(uidNumber=%s)' % uidNumber): + if not self.conn.search(u'(uidNumber=%s)' % uidNumber): break if not len(pool_uid): raise ValueError("Plus d'uid disponibles !") diff --git a/test.py b/test.py index 77606f5..0947720 100755 --- a/test.py +++ b/test.py @@ -131,7 +131,7 @@ def tests_machines(parent_dn, realm_list, ipsec=False): print OK anim("Suppression d'une machines %s" % realm) try: - machine = conn.search('mid=%s' % machine['mid'][0], mode='rw')[0] + machine = conn.search(u'mid=%s' % machine['mid'][0], mode='rw')[0] machine.delete() del(machine) except Exception as error: @@ -234,7 +234,7 @@ else: anim("Suppression d'un club") try: - club = conn.search('cid=%s' % club['cid'][0], mode='rw')[0] + club = conn.search(u'cid=%s' % club['cid'][0], mode='rw')[0] club.delete() except Exception: print ERREUR @@ -252,7 +252,7 @@ else: if adherent: anim("Suppression d'un adherent") try: - adherent = conn.search('aid=%s' % adherent['aid'][0], mode='rw')[0] + adherent = conn.search(u'aid=%s' % adherent['aid'][0], mode='rw')[0] adherent.delete() except Exception: print ERREUR @@ -274,7 +274,7 @@ except Exception as error: else: print OK try: - facture = conn.search('fid=%s' % facture['fid'][0], mode='rw')[0] + facture = conn.search(u'fid=%s' % facture['fid'][0], mode='rw')[0] facture.delete() except Exception: print ERREUR