On utilise la fonction de gnration crite ailleurs
darcs-hash:20060424162252-72cb0-a801c080c1cfa0b1f5a594a0c11d278d154d5565.gz
This commit is contained in:
parent
e867e4f99b
commit
bcc4ec2568
1 changed files with 9 additions and 43 deletions
|
@ -28,6 +28,11 @@ from time import *
|
||||||
import locale
|
import locale
|
||||||
locale.setlocale(locale.LC_TIME, 'fr_FR')
|
locale.setlocale(locale.LC_TIME, 'fr_FR')
|
||||||
import lock
|
import lock
|
||||||
|
sys.path.append('/usr/scripts/surveillance/fiche_deconnexion')
|
||||||
|
from generate import generate_ps
|
||||||
|
|
||||||
|
# ldap
|
||||||
|
ldap = crans_ldap()
|
||||||
|
|
||||||
# Quelques fonctions
|
# Quelques fonctions
|
||||||
####################
|
####################
|
||||||
|
@ -42,44 +47,6 @@ def machine_online(machine):
|
||||||
# Arping pour les fixes
|
# Arping pour les fixes
|
||||||
return not commands.getstatusoutput('/usr/sbin/arping -c 3 %s' % machine.mac())[0]
|
return not commands.getstatusoutput('/usr/sbin/arping -c 3 %s' % machine.mac())[0]
|
||||||
|
|
||||||
def generate_ps(sanction, proprio):
|
|
||||||
"""En fonction de la sanction à appliquer au propriétaire,
|
|
||||||
on génère la feuille de déconnexion et on retourne son nom et
|
|
||||||
emplacement."""
|
|
||||||
# Dossier de génération du ps
|
|
||||||
dossier = '/usr/scripts/surveillance/fiche_deconnexion'
|
|
||||||
|
|
||||||
# Base pour le nom du fichier
|
|
||||||
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().lower().replace(' ', '-'))
|
|
||||||
|
|
||||||
# Création du fichier tex
|
|
||||||
format_date = '%A %d %B %Y'
|
|
||||||
template = file('%s/deconnexion_%s.tex' % (dossier, sanction)).read()
|
|
||||||
template = template.replace('~prenom~', proprio.prenom().encode('iso8859-15'))
|
|
||||||
template = template.replace('~nom~', proprio.nom().encode('iso8859-15'))
|
|
||||||
template = template.replace('~chambre~', proprio.chbre().encode('iso8859-15'))
|
|
||||||
template = template.replace('~mail~', proprio.email().encode('iso8859-15'))
|
|
||||||
template = template.replace('~debut~', strftime(format_date, localtime()))
|
|
||||||
template = template.replace('~fin~', strftime(format_date, localtime(time()+14*86400)))
|
|
||||||
# filtrage des autodisc
|
|
||||||
historique = [ bl.encode('iso-8859-15').split('$') for bl in proprio.blacklist() if bl.split('$')[2] == 'autodisc_upload' ]
|
|
||||||
# transfomation en tuple (date, upload)
|
|
||||||
historique = [ (strftime('%A %d %B %Y', localtime(int(bl[0]))), bl[-1].split(' ')[-2]) for bl in historique ]
|
|
||||||
# tranformation en ligne
|
|
||||||
historique = [ '%s & %s & Mo'%(bl[0], bl[1]) for bl in historique ]
|
|
||||||
# assemblage des lignes
|
|
||||||
historique = r'\\\n'.join(historique)
|
|
||||||
template = template.replace('~historique~', historique)
|
|
||||||
template = template.replace('~limitehard~', str(upload.hard))
|
|
||||||
template = template.replace('~nbadher~', str(len(ldap.search('paiement=ok')['adherent'])))
|
|
||||||
|
|
||||||
file('%s/%s.tex' % (dossier, fichier), 'w').write(template)
|
|
||||||
|
|
||||||
# Compilation du fichier latex
|
|
||||||
commands.getstatusoutput('PATH="/bin:/usr/bin" cd %(dossier)s && latex %(base)s.tex && dvips %(base)s.dvi && rm -f %(base)s.dvi %(base)s.aux %(base)s.log %(base)s.tex'%{'dossier': dossier, 'base': fichier})
|
|
||||||
|
|
||||||
return '%s/%s.ps' % (dossier, fichier)
|
|
||||||
|
|
||||||
# Variables utiles
|
# Variables utiles
|
||||||
##################
|
##################
|
||||||
|
|
||||||
|
@ -105,9 +72,6 @@ for i in range(5):
|
||||||
print "Impossible de se connecter au SMTP"
|
print "Impossible de se connecter au SMTP"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# ldap
|
|
||||||
ldap = crans_ldap()
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Vérification de l'upload #
|
# Vérification de l'upload #
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -247,7 +211,7 @@ for elupload, eltype, elid in uploadeurs:
|
||||||
if nb_decos >= 3:
|
if nb_decos >= 3:
|
||||||
|
|
||||||
# Génération du fichier postscript
|
# Génération du fichier postscript
|
||||||
fichier_ps = generate_ps('upload', proprio)
|
fichier_ps = generate_ps('upload', proprio, ldap)
|
||||||
|
|
||||||
# Envoi du mail à disconnect
|
# Envoi du mail à disconnect
|
||||||
corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps}
|
corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps}
|
||||||
|
@ -453,6 +417,8 @@ for ip, id_p2p, nombre in fraudeurs:
|
||||||
#s'il est averti
|
#s'il est averti
|
||||||
if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p:
|
if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p:
|
||||||
continue
|
continue
|
||||||
|
#if id_p2p == 1:
|
||||||
|
#continue
|
||||||
|
|
||||||
# Récupération des ref de la machine
|
# Récupération des ref de la machine
|
||||||
machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
|
machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
|
||||||
|
@ -492,7 +458,7 @@ for ip, id_p2p, nombre in fraudeurs:
|
||||||
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ])
|
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ])
|
||||||
if nb_decos >= 3:
|
if nb_decos >= 3:
|
||||||
|
|
||||||
fichier_ps = generate_ps('p2p', proprio)
|
fichier_ps = generate_ps('p2p', proprio, ldap)
|
||||||
# Envoi du mail à disconnect
|
# Envoi du mail à disconnect
|
||||||
corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur,
|
corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur,
|
||||||
'to': p2p.expediteur,
|
'to': p2p.expediteur,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue