Esthtisme.

darcs-hash:20060309235447-68412-3733c8be4ceec74ea69f9cae948181293fabac74.gz
This commit is contained in:
glondu 2006-03-10 00:54:47 +01:00
parent 95a6fe21bd
commit aea8585794

View file

@ -506,9 +506,10 @@ class crans_ldap:
def search(self, expression, mode=''): def search(self, expression, mode=''):
""" """
Recherche dans la base LDAP, expression est une chaîne : Recherche dans la base LDAP, expression est une chaîne :
une expression : champ1=expr1 champ2=expr2 champ3!=expr3.... * soit une expression : champ1=expr1&champ2=expr2&champ3!=expr3...
soit un seul terme, dans ce cas cherche sur les champs de auto_search_champs * soit un seul terme, dans ce cas cherche sur les champs de
Si mode ='w' les instances crées seront en mode d'écriture auto_search_champs
Si mode='w', les instances crées seront en mode d'écriture
""" """
if type(expression) == str: if type(expression) == str:
@ -517,7 +518,7 @@ class crans_ldap:
elif type(expression) == unicode: elif type(expression) == unicode:
expression = expression.encode('utf-8') expression = expression.encode('utf-8')
else: else:
raise TypeError(u'Chaine attendue') raise TypeError(u'Chaîne attendue')
if not expression: if not expression:
return [] return []
@ -531,9 +532,11 @@ class crans_ldap:
# Fonction utile # Fonction utile
def build_filtre(champ, expr, neg=0): def build_filtre(champ, expr, neg=0):
""" Retourne une chaine pour recherche dans la base LDAP """
du style (champ=expr) en adaptant les valeurs de expr au champ Retourne une chaine pour recherche dans la base LDAP
si neg = 1: retourne le négatif : (!(champ=expr))""" du style (champ=expr) en adaptant les valeurs de expr au champ.
Si neg = 1, retourne le négatif : (!(champ=expr))
"""
el = '' el = ''
if champ in ['host', 'hostAlias']: if champ in ['host', 'hostAlias']:
if expr[-1] == '*': if expr[-1] == '*':
@ -548,13 +551,13 @@ class crans_ldap:
except: pass except: pass
elif champ == 'paiement' and expr == 'ok': elif champ == 'paiement' and expr == 'ok':
# Paiement donnant droit à une connexion maintenant ? # Paiement donnant droit à une connexion maintenant ?
# il doit avoir payé pour # (il doit avoir payé pour l'année en cours ou pour
# l'année en cours ou pour l'année précédente # l'année précédente si on est en septembre
# si on est en septembre
# #
# Dans tous les cas, pour un adhérent, le paiement est considéré non ok # Dans tous les cas, pour un adhérent, le paiement est
# s'il n'a pas fourni sa carte d'etudiant alors que l'on est desormais # considéré non ok s'il n'a pas fourni sa carte d'etudiant
# en periode de bloquage definifif (cf config.py). # alors que l'on est desormais en periode de bloquage
# définifif (cf config.py).
if localtime()[1] == 9: if localtime()[1] == 9:
# Pour septembre paiement année précédente ok # Pour septembre paiement année précédente ok
el = "(|(paiement=%s)(paiement=%s))" % (int(ann_scol), int(ann_scol)-1) el = "(|(paiement=%s)(paiement=%s))" % (int(ann_scol), int(ann_scol)-1)
@ -637,7 +640,8 @@ class crans_ldap:
# Filtre sur un seul champ # Filtre sur un seul champ
# => on retourne tout # => on retourne tout
for i in filtres: for i in filtres:
if not r[i]: continue if not r[i]:
continue
for res in r[i]: for res in r[i]:
if i == "machine": if i == "machine":
if res[1].has_key('puissance'): if res[1].has_key('puissance'):
@ -668,8 +672,9 @@ class crans_ldap:
# Traitement des machines # Traitement des machines
mach_adh = [] # liste de dn d'adhérents et de clubs mach_adh = [] # liste de dn d'adhérents et de clubs
for res in r['machine']: for res in r['machine']:
dn = string.join(res[0].split(',')[-4:],',') dn = ','.join(res[0].split(',')[-4:])
if dn[:3] != 'aid' and dn[:3] != 'cid': continue if dn[:3] != 'aid' and dn[:3] != 'cid':
continue
if dn not in mach_adh: if dn not in mach_adh:
mach_adh.append(dn) mach_adh.append(dn)