From 3d3f114ed22edb1376caeb31d27d33d736e946e1 Mon Sep 17 00:00:00 2001 From: chove Date: Wed, 23 Nov 2005 22:09:43 +0100 Subject: [PATCH] petites modifs pour le greylisting qui est maintenant oprationel darcs-hash:20051123210943-4ec08-6f15a8304951121c5869a0389170ba4cb3df1bd7.gz --- gestion/affich_tools.py | 2 +- gestion/ldap_crans.py | 39 +++++++++++++++++++++++++++++---------- gestion/whos.py | 5 +++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/gestion/affich_tools.py b/gestion/affich_tools.py index 5fe1bc17..78462980 100755 --- a/gestion/affich_tools.py +++ b/gestion/affich_tools.py @@ -68,7 +68,7 @@ def coul(txt,col): Les couleur sont celles de codecol Il est possible de changer la couleur de fond grace aux couleur f_ """ - codecol={'rouge' : 31 , 'vert' : 32 , 'jaune' : 33 , 'bleu': 34 , 'violet' : 35 , 'cyan' : 36 , 'gras' : 50} + codecol={'rouge' : 31 , 'vert' : 32 , 'jaune' : 33 , 'bleu': 34 , 'violet' : 35 , 'cyan' : 36 , 'gris' : 30, 'gras' : 50} try : if col[:2]=='f_' : add=10; col=col[2:] else : add=0 diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index bf9e7a37..3525166b 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -210,7 +210,7 @@ class crans_ldap: 'club': [ 'nom', 'chbre' ] } # Champs de recherche pour la recherche manuelle (en plus de la recherche auto) - non_auto_search_champs = { 'adherent': [ 'etudes', 'paiement', 'carteEtudiant', 'aid' , 'postalAddress', 'historique' ,'blacklist', 'droits', 'uidNumber', 'uid', 'info', 'solde' , 'controle' ], \ + non_auto_search_champs = { 'adherent': [ 'etudes', 'paiement', 'carteEtudiant', 'aid' , 'postalAddress', 'historique' ,'blacklist', 'droits', 'uidNumber', 'uid', 'info', 'solde' , 'controle' , 'contourneGreylist' ], \ 'machine': [ 'mid' , 'ipsec', 'historique', 'blacklist' , 'puissance', 'canal', 'portTCPin', 'portTCPout', 'portUDPin', 'portUDPout', 'prise' , 'info', 'exempt' ] , 'club': [ 'cid' , 'responsable', 'paiement', 'historique', 'blacklist', 'mailAlias', 'info', 'controle' ] } @@ -884,9 +884,13 @@ class base_classes_crans(crans_ldap): valeur_initiale = 'N/A' else: valeur_initiale = self._init_data[champ][0] + if not self._data.get(champ,[]): + valeur_finale = 'N/A' + else: + valeur_finale = self._data[champ][0] modif[modif.index(champ)] = '%s (%s -> %s)' % (champ, valeur_initiale, - self._data[champ][0]) + valeur_finale) # Formate les entrées de l'historique de la forme champ+diff-diff for champ in ['droits', 'controle', 'paiement', 'carteEtudiant', 'mailAlias', 'hostAlias', 'exempt']: @@ -1203,20 +1207,35 @@ class base_proprietaire(base_classes_crans): def contourneGreylist(self,contourneGreylist=None): """ Retourne ou change la greylist pour le compte - OK : contourne la greyliste - NOK : ne contourne pas la greyliste """ + True : contourne le GreyListing + False :ne contourne pas le greylisting """ + + # Pour postfix il faut retourner : + # OK : contourne la greyliste + # cf. man 5 access + + # si l'adhérent n'a pas de compte, on lève une exeption if not self.compte(): raise NotImplementedError, u"L'adhérent na pas de compte" - elif contourneGreylist==None: - return self._data.get('contourneGreylist',['NOK'])[0] + # tente de modifier la valeur + if contourneGreylist==None: + pass - elif contourneGreylist not in ['OK','NOK']: - raise ValueError, u"contourneGreylist : il faut fournir OK/NOK comme argument" + elif contourneGreylist == True: + self._set('contourneGreylist',['OK']) + + elif contourneGreylist == False: + self._set('contourneGreylist',[]) else: - self._set('contourneGreylist',[contourneGreylist]) - return contourneGreylist + raise ValueError, u"contourneGreylist prend un booléen comme argument" + + # renvoie la valeur trouvée dans la base + if self._data.get('contourneGreylist',[]) == []: + return False + else: + return True def home(self): """ Retourne le home de l'adhérent """ diff --git a/gestion/whos.py b/gestion/whos.py index 9f23cf9f..692581f3 100755 --- a/gestion/whos.py +++ b/gestion/whos.py @@ -289,16 +289,21 @@ def adher_details(adher) : f += coul(u'Nom : ','gras') + "%s\n" % adher.Nom() # Mail + GL = u'' if adher.mail().find('@')!=-1 : f += coul(u'Adresse mail : ','gras') + "%s" % adher.mail() else : f += coul(u'Login : ','gras') + "%s\t" % adher.mail() + # controurneGreylisting + if not adher.contourneGreylist(): + GL = u' (%s)'%coul(u'GreyList','gris') alias = ', '.join([adher.cannonical_alias()] + adher.alias()) if alias : if alias[0]==',' : # Cannonical étéait vide alias = alias[2:] f += coul(u'Alias : ','gras') + alias + f+= GL f+= u'\n' # Etat administratif