Search by unicode

This commit is contained in:
Valentin Samir 2013-07-02 14:42:59 +02:00
parent e18e5222b7
commit 9540bc572c
4 changed files with 15 additions and 16 deletions

View file

@ -238,7 +238,7 @@ class Attr(object):
if unicode(self) in liste_exclue: if unicode(self) in liste_exclue:
return return
if self.unique: if self.unique:
res = self.conn.search('%s=%s' % (attr, str(self))) res = self.conn.search(u'%s=%s' % (attr, str(self)))
if res: if res:
raise UniquenessError("%s déjà existant" % attr, [r.dn for r in res]) raise UniquenessError("%s déjà existant" % attr, [r.dn for r in res])
@ -467,7 +467,7 @@ class mail(Attr):
if res: if res:
raise ValueError("Le mail %s est déjà pris." % (str(self))) raise ValueError("Le mail %s est déjà pris." % (str(self)))
else: else:
check = self.conn.search("mail=%s" % mail) check = self.conn.search(u'mail=%s' % mail)
if len(check) >= 1: if len(check) >= 1:
raise ValueError("Le mail %s est déjà pris." % (str(self))) raise ValueError("Le mail %s est déjà pris." % (str(self)))
@ -639,7 +639,7 @@ class host(dnsAttr):
if str(self) in liste_exclue: if str(self) in liste_exclue:
return return
if attr in ["host", "hostAlias"]: 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: if res:
raise ValueError("Hôte déjà existant", [r.dn for r in res]) raise ValueError("Hôte déjà existant", [r.dn for r in res])
@ -749,7 +749,6 @@ class rid(Attr):
continue continue
else: else:
continue continue
self.value = rid self.value = rid
def __unicode__(self): def __unicode__(self):
@ -930,7 +929,7 @@ class responsable(Attr):
return self._value return self._value
else: else:
try: try:
res = self.conn.search('aid=%s' % self.__value)[0] res = self.conn.search(u'aid=%s' % self.__value)[0]
except IndexError: except IndexError:
raise ValueError("get_respo: L'adherent %s n'existe pas ou plus" % (self.__value)) raise ValueError("get_respo: L'adherent %s n'existe pas ou plus" % (self.__value))
self._value = res self._value = res
@ -966,7 +965,7 @@ class imprimeurClub(Attr):
return self._value return self._value
else: else:
try: try:
res = self.conn.search('aid=%s' % int(self.__value))[0] res = self.conn.search(u'aid=%s' % int(self.__value))[0]
except IndexError: except IndexError:
raise ValueError("get_imprimeur: L'adhérent aid=%r n'existe pas ou plus" % self.__value) raise ValueError("get_imprimeur: L'adhérent aid=%r n'existe pas ou plus" % self.__value)
self._value = res self._value = res

View file

@ -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.") raise ValueError("Même root doit préciser qui il est pour se connecter à la base LDAP.")
self.current_login = user self.current_login = user
else: else:
current_user = self.search("uid=%s" % user) current_user = self.search(u'uid=%s' % user)
if len(current_user) != 1: if len(current_user) != 1:
raise ValueError("L'utilisateur %s n'est pas présent dans la base en *1* exemplaire." % user) raise ValueError("L'utilisateur %s n'est pas présent dans la base en *1* exemplaire." % user)
else: else:
@ -233,7 +233,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
if login is None: if login is None:
login = self.current_login login = self.current_login
#adm, serveurs, bornes, wifi, adherents, gratuit ou personnel-ens""" #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"]: if realm in ["adm", "serveurs", "serveurs-v6", "adm-v6"]:
uldif['objectClass'] = [u'machineCrans'] uldif['objectClass'] = [u'machineCrans']

View file

@ -673,13 +673,13 @@ class adherent(proprio):
def clubs(self): def clubs(self):
"""Renvoie la liste des clubs dont l'adherent est responsable""" """Renvoie la liste des clubs dont l'adherent est responsable"""
if self._clubs is None: 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 return self._clubs
def imprimeur_clubs(self): def imprimeur_clubs(self):
"""Renvoie la liste des clubs dont l'adherent est imprimeur""" """Renvoie la liste des clubs dont l'adherent est imprimeur"""
if self._imprimeur_clubs is None: 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 return self._imprimeur_clubs
def compte(self, login = None, uidNumber=0, hash_pass = '', shell=config.login_shell): 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)] self['userPassword'] = [unicode(hash_pass)]
if uidNumber: if uidNumber:
if self.conn.search('(uidNumber=%s)' % uidNumber): if self.conn.search(u'(uidNumber=%s)' % uidNumber):
raise ValueError(u'uidNumber pris') raise ValueError(u'uidNumber pris')
else: else:
pool_uid = range(1001, 9999) pool_uid = range(1001, 9999)
random.shuffle(pool_uid) random.shuffle(pool_uid)
while len(pool_uid) > 0: while len(pool_uid) > 0:
uidNumber = pool_uid.pop() # On choisit un uid 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 break
if not len(pool_uid): if not len(pool_uid):
raise ValueError("Plus d'uid disponibles !") raise ValueError("Plus d'uid disponibles !")

View file

@ -131,7 +131,7 @@ def tests_machines(parent_dn, realm_list, ipsec=False):
print OK print OK
anim("Suppression d'une machines %s" % realm) anim("Suppression d'une machines %s" % realm)
try: 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() machine.delete()
del(machine) del(machine)
except Exception as error: except Exception as error:
@ -234,7 +234,7 @@ else:
anim("Suppression d'un club") anim("Suppression d'un club")
try: 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() club.delete()
except Exception: except Exception:
print ERREUR print ERREUR
@ -252,7 +252,7 @@ else:
if adherent: if adherent:
anim("Suppression d'un adherent") anim("Suppression d'un adherent")
try: 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() adherent.delete()
except Exception: except Exception:
print ERREUR print ERREUR
@ -274,7 +274,7 @@ except Exception as error:
else: else:
print OK print OK
try: 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() facture.delete()
except Exception: except Exception:
print ERREUR print ERREUR