90 lines
3.2 KiB
Python
Executable file
90 lines
3.2 KiB
Python
Executable file
#! /usr/bin/env python
|
|
# -*- coding: iso-8859-15 -*-
|
|
|
|
""" Génération de la configuration pour squid """
|
|
|
|
from gen_confs import gen_config
|
|
from time import localtime
|
|
|
|
class bl_carte_etudiant(gen_config) :
|
|
""" Génère le fichier de blackliste pour carte d'étudiant pour squid"""
|
|
BL_CARTE = '/tmp/bl_carte_et'
|
|
restart_cmd = '/etc/init.d/squid reload'
|
|
|
|
def __str__(self) :
|
|
return "blackliste cartes d'étudiant"
|
|
|
|
def _gen(self) :
|
|
fd=self._open_conf(self.BL_CARTE)
|
|
|
|
if localtime()[1] == 9:
|
|
# On est en septembre, on autorise ceux qui ont payé l'an dernier et cette année
|
|
base = self.base.search('carteEtudiant!=%s&(paiement=%d|paiement=%d)' % (self.ann_scol,
|
|
int(self.ann_scol),
|
|
int(self.ann_scol) - 1))
|
|
else:
|
|
base = self.base.search('paiement=%s' % self.ann_scol)
|
|
for adh in ( [ self.crans ] + base['adherent'] + base['club'] ):
|
|
for machine in adh.machines() :
|
|
self.anim.cycle()
|
|
if 'bloq' in machine.blacklist_actif() : continue
|
|
if machine.proprietaire().idn != 'aid' : continue
|
|
fd.write(machine.nom() + '\n')
|
|
|
|
fd.close()
|
|
|
|
class bl_upload_squid(gen_config) :
|
|
""" Génère le fichier de blackliste d'upload pour squid"""
|
|
# Fichier
|
|
BL_UPLOAD = '/tmp/bl_upload_squid'
|
|
restart_cmd = '/etc/init.d/squid reload'
|
|
|
|
def __str__(self) :
|
|
return "blackliste upload squid"
|
|
|
|
def _gen(self) :
|
|
upload = self._open_conf( self.BL_UPLOAD )
|
|
|
|
if localtime()[1] == 9:
|
|
# On est en septembre, on autorise ceux qui ont payé l'an dernier et cette année
|
|
base = self.base.search('(paiement=%d|paiement=%d)' % (int(self.ann_scol),
|
|
int(self.ann_scol) - 1))
|
|
else:
|
|
base = self.base.search('paiement=%s' % self.ann_scol)
|
|
for adh in ( [ self.crans ] + base['adherent'] + base['club'] ):
|
|
for machine in adh.machines() :
|
|
self.anim.cycle()
|
|
bl = machine.blacklist_actif()
|
|
if 'bl_upload' in bl and not 'bloq' in bl :
|
|
upload.write( machine.nom() + '\n' )
|
|
|
|
upload.close()
|
|
|
|
class bl_virus(gen_config) :
|
|
""" Génère le fichier de blackliste virus pour squid"""
|
|
# Fichiers
|
|
BL_VIRUS = '/tmp/bl_virus'
|
|
|
|
def __str__(self) :
|
|
return "blackliste virus"
|
|
|
|
restart_cmd = '/etc/init.d/squid reload'
|
|
|
|
description = u'Bloquage accès http vers l\'extérieur, page expliquative'
|
|
|
|
def _gen(self) :
|
|
virus = self._open_conf( self.BL_VIRUS )
|
|
|
|
if localtime()[1] == 9:
|
|
# On est en septembre, on autorise ceux qui ont payé l'an dernier et cette année
|
|
base = self.base.search('(paiement=%d|paiement=%d)' % (int(self.ann_scol),
|
|
int(self.ann_scol) - 1))
|
|
else:
|
|
base = self.base.search('paiement=%s' % self.ann_scol)
|
|
for machine in base['machine'] :
|
|
self.anim.cycle()
|
|
bl = machine.blacklist_actif()
|
|
if 'bl_virus' in bl and not 'bloq' in bl :
|
|
virus.write( machine.nom() + '\n')
|
|
|
|
virus.close()
|