scripts/gestion/gen_confs/squid.py
Michel Blockelet 0f9856085e [admin/mail_invalide/,gen_confs/] Mise en place deconnexion pour mail invalide
Maintenant, quand on voit un mail invalide :
/usr/scripts/admin/mail_invalide/mail_invalide.py [mail]...
La personne est deconnectee au bout de 2 semaines si elle n'a pas change
son adresse mail.

 * Le script admin/mail_invalide/mail_invalide.py permet de generer les fiches,
et note l'adherent pour deconnexion 2 semaines plus tard (services_to_restart)
 * admin/mail_invalide/mail_invalide.tex est une fusion des deux
mail_invalide*.tex dans le dossier admin/src/
 * gen_confs/adherents.py s'occupe de marquer le mail comme invalide au bout de
2 semaines s'il n'a pas ete change (il met le flag mailInvalide=TRUE)
 * gen_confs/squid.py genere la liste des deconnectes pour Squid

darcs-hash:20091208003119-ddb99-74b4388950300879400250b9c40716013832d45e.gz
2009-12-08 01:31:19 +01:00

109 lines
3.5 KiB
Python

#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-
""" Génération de la configuration pour squid sur sable """
import sys
sys.path.append('/usr/scripts/gestion')
from gen_confs import gen_config
from ldap_crans import crans_ldap, ann_scol
from time import localtime
from config import bl_carte_et_actif
class squid(gen_config) :
db = crans_ldap()
actif = True # la sanction est elle active ?
restart_cmd = '/etc/init.d/squid3 reload'
def __str__(self) :
return str(self.__class__).replace('_','-').split('.')[2]
def _gen(self) :
self._mklist()
def _mklist(self) :
fic = self._open_conf(self.FICHIER)
if not self.actif:
return
# recherche dans la base LDAP
if '=' in self.chaine:
# chaine de tri spéciale
liste = self.db.search("paiement=ok&%s"%self.chaine)
l_proprio = liste["adherent"] + liste["club"]
l_machine = liste["machine"]
else:
# recherche dans les adhérents blacklistés
liste = self.db.search("paiement=ok&ablacklist=*%s*"%self.chaine)
l_proprio = liste["adherent"] + liste["club"]
l_proprio = [ x for x in l_proprio if self.chaine in x.blacklist_actif() ]
# recherche dans les machines blacklistés
liste = self.db.search("paiement=ok&mblacklist=*%s*"%self.chaine)
l_machine = liste["machine"]
l_machine = [ m for m in l_machine if self.chaine in m.blacklist_actif() ]
# on ajoute les machines des proprios aux autres machines
for proprio in l_proprio :
l_machine += proprio.machines()
# on colle toutes les machines dans le fichier
self.anim.iter=len(l_machine)
for m in l_machine:
self.anim.cycle()
fic.write( m.Nom() + '\n' )
fic.close()
class squid_upload(squid) :
""" Génère le fichier blacklist-upload pour squid """
FICHIER = "/etc/squid3/blacklist_upload"
chaine = "upload"
class squid_p2p(squid) :
""" Génère le fichier blacklist-p2p pour squid """
FICHIER = "/etc/squid3/blacklist_p2p"
chaine = "p2p"
class squid_autodisc_upload(squid) :
""" Génère le fichier blacklist-autodiscupload pour squid """
FICHIER = "/etc/squid3/blacklist_autodisc_upload"
chaine = "autodisc_upload"
class squid_autodisc_p2p(squid) :
""" Génère le fichier blacklist-autodisc-p2p pour squid """
FICHIER = "/etc/squid3/blacklist_autodisc_p2p"
chaine = "autodisc_p2p"
class squid_virus(squid) :
""" Génère le fichier blacklist-virus pour squid """
FICHIER = "/etc/squid3/blacklist_virus"
chaine = "virus"
class squid_warez(squid) :
""" Génère le fichier blacklist-warez pour squid """
FICHIER = "/etc/squid3/blacklist_warez"
chaine = "warez"
class squid_bloq(squid) :
""" Génère le fichier blacklist-bloq pour squid """
FICHIER = "/etc/squid3/blacklist_bloq"
chaine = "bloq"
class squid_carte(squid) :
""" Génère le fichier blacklist-carte pour squid """
actif = bl_carte_et_actif
if not actif : restart_cmd = ''
FICHIER = "/etc/squid3/blacklist_carte_et"
chaine = "carteEtudiant!=%i"%ann_scol
class squid_chbre(squid) :
""" Génère le fichier blacklist-chbre pour squid """
FICHIER = "/etc/squid3/blacklist_chbre"
chaine = "chbre=????"
class squid_mail(squid) :
""" Génère le fichier blacklist-mail pour squid """
FICHIER = "/etc/squid3/blacklist_mail"
chaine = "mailInvalide=TRUE&uid!=*"