deconnexion2: fusionne mails notif upload_hard

Et on peut ainsi virer ce machin de templating dans config/
This commit is contained in:
Daniel STAN 2015-04-17 18:26:57 +02:00
parent 0d1eca2f8c
commit 18bcbd19ea
5 changed files with 29 additions and 89 deletions

View file

@ -16,7 +16,6 @@ import datetime
import pytz
import cStringIO
import gestion.config.mails.upload as mails_upload
import gestion.affichage as affichage
import lc_ldap.shortcuts as shortcuts
import lc_ldap.objets as objets
@ -285,6 +284,28 @@ def upload_hard(proprio, elupload, elid, eltype, curseur, ldap):
sys.stderr.write("Blacklist de %s pour %s Mo échoué, %s\n" % (proprio.dn.split(',')[0], elupload, error))
return
# Vérification du nombre de déconnexions
#########################################
nb_decos = sum(
blacklist['type'] == u'autodisc_upload' and
int(blacklist['debut']) > stamp_debut - upload.periode_watch
for blacklist in proprio['blacklist']
)
if nb_decos >= upload.max_decos:
# Génération du fichier postscript
try:
fiche_deco = generate_ps('upload', proprio, ldap)
except Exception as error:
fiche_deco = u"""ERREUR lors de la génération.
Merci de regénérer manuellement la fiche avec la commande :
/usr/scripts/surveillance/fiche_deconnexion/generate.py --upload %s""" % \
(proprio.dn.split(',')[0],)
mail_data.update({
'nb_decos': nb_decos,
'fiche_deco': fiche_deco,
})
# On envoie un mail à l'adhérent
# On envoie un mail à disconnect
################################
@ -302,41 +323,6 @@ def upload_hard(proprio, elupload, elid, eltype, curseur, ldap):
else:
print corps
# Vérification du nombre de déconnexions
#########################################
nb_decos = len([
blacklist
for blacklist
in proprio['blacklist']
if int(blacklist['debut']) > stamp_debut - upload.periode_watch
and blacklist['type'] == u'autodisc_upload'
])
if DEBUG:
print nb_decos
if nb_decos >= upload.max_decos and not DEBUG:
# Génération du fichier postscript
try:
fichier_ps = generate_ps('upload', proprio, ldap)
except Exception as error:
fichier_ps = ("ERREUR lors de la génération. Merci de regénérer manuellement la fiche avec la commande :\n" + "/usr/scripts/surveillance/fiche_deconnexion/generate.py --upload %s" % (proprio.dn.split(',')[0],))
# Envoi du mail à disconnect
with mail_module.ServerConnection() as smtp_conn:
corps = mails_upload.message_disconnect_multi % {
'from': upload.expediteur,
'to': upload.expediteur,
'nbdeco': nb_decos,
'proprio': u" ".join((
unicode(proprio.get('prenom', [u''])[0]),
unicode(proprio.get('nom', [u''])[0]),
)
),
'ps': fichier_ps,
}
corps = corps.encode('utf-8')
smtp_conn.sendmail(upload.expediteur, upload.expediteur, corps)
def upload_soft(proprio, elupload, elid, eltype, curseur):
"""Envoit un mail et stocke l'info"""
# On inscrit l'ip dans la table des avertis soft
@ -361,21 +347,6 @@ def upload_soft(proprio, elupload, elid, eltype, curseur):
else:
print corps
# On envoie un mail à disconnect
################################
if upload.disconnect_mail_soft and not DEBUG:
corps = mails_upload.message_disconnect_soft % {
'from': upload.expediteur,
'to': upload.expediteur,
'upload': "%.2f" % (elupload,),
'proprio': u" ".join(
unicode(proprio.get('prenom', [u''])[0]),
unicode(proprio.get('nom', [u''])[0]),
),
}
corps = corps.encode('utf-8')
smtp_connect.sendmail(upload.expediteur, upload.expediteur, corps)
def single_check(eltype, elid, elupload, ldap, curseur):
"""Fait un test sur un utilisateur, et
applique une blackliste ou envoit un averto."""