From 1efa27ecaf84268d4da186cde034067793901b47 Mon Sep 17 00:00:00 2001 From: glondu Date: Sat, 1 Apr 2006 02:18:58 +0200 Subject: [PATCH] Les adhrents n'ont pas d'adresse IP, simplifications. darcs-hash:20060401001858-68412-1939db9c3ffdf7edc756099e40c051749d06f1d1.gz --- gestion/gen_confs/firewall.py | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/gestion/gen_confs/firewall.py b/gestion/gen_confs/firewall.py index 8fcfd3bc..51ffa154 100755 --- a/gestion/gen_confs/firewall.py +++ b/gestion/gen_confs/firewall.py @@ -668,26 +668,35 @@ class firewall_komaz(firewall_crans) : %(ip,proto,port)) def blacklist(self): - """ Construit les chaines de blackliste (BLACKLIST_{DST,SRC}) """ + """ Construit les chaînes de blackliste (BLACKLIST_{DST,SRC}) """ self.anim = anim("\tBlackliste") iptables('-F BLACKLIST_DST') iptables('-F BLACKLIST_SRC') - blacklist=[] + # Peut-être à mettre dans config.py ? + blacklist_sanctions = ('upload', 'warez', 'p2p', 'autodisc_p2p', 'autodisc_upload') + + blacklist = [] + # Recherche sur le champ ablacklist (clubs compris) - search = db.search('ablacklist=*&paiement=%s'% ann_scol) - for entite in search['adherent']+search['club']: + search = db.search('ablacklist=*&paiement=%s' % ann_scol) + for entite in search['adherent'] + search['club']: self.anim.cycle() sanctions = entite.blacklist_actif() - if 'upload' in sanctions or 'warez' in sanctions or 'p2p' in sanctions or 'autodisc_p2p' in sanctions or 'autodisc_upload' in sanctions : - blacklist+=entite.machines() - # Recherche sur le champ mblacklist (clubs aussi compris mais on extrait pas les résultats) - search = db.search('mblacklist=*&paiement=%s'% ann_scol) - for entite in search['adherent']+search['club']+search['machine']: + for s in blacklist_sanctions: + if s in sanctions: + blacklist.extend(entite.machines()) + break + + # Recherche sur le champ mblacklist + search = db.search('mblacklist=*&paiement=%s' % ann_scol) + for entite in search['machine']: self.anim.cycle() sanctions = entite.blacklist_actif() - if 'upload' in sanctions or 'warez' in sanctions or 'p2p' in sanctions or 'autodisc_p2p' in sanctions or 'autodisc_upload' in sanctions : - blacklist+=[entite] + for s in blacklist_sanctions: + if s in sanctions: + blacklist.append(entite) + break for machine in blacklist: iptables("-A BLACKLIST_DST -d %s -j REJECT --reject-with icmp-host-prohibited" % machine.ip())