deconnexion2: fusionne mails notif upload_hard
Et on peut ainsi virer ce machin de templating dans config/
This commit is contained in:
parent
0d1eca2f8c
commit
18bcbd19ea
5 changed files with 29 additions and 89 deletions
|
@ -1,32 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
""" Templates des mails envoyés en cas d'upload.
|
|
||||||
TODO: à migrer dans /usr/scripts/gestion/mail/templates
|
|
||||||
"""
|
|
||||||
|
|
||||||
#: Envoyé à la ML disconnect@ en cas de dépassement de la limite soft (désactivé)
|
|
||||||
message_disconnect_soft = u"""From: %(from)s
|
|
||||||
To: %(to)s
|
|
||||||
Subject: %(proprio)s uploade
|
|
||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
|
|
||||||
%(proprio)s uploade actuellement %(upload)s Mio.
|
|
||||||
|
|
||||||
|
|
||||||
--\u0020
|
|
||||||
Message créé par deconnexion.py"""
|
|
||||||
|
|
||||||
#: Envoyé à la ML disconnect@ en cas de dépassement de la limite hard plusieurs fois
|
|
||||||
message_disconnect_multi = u"""From: %(from)s
|
|
||||||
To: %(to)s
|
|
||||||
Subject: %(proprio)s a =?utf-8?q?=C3=A9t=C3=A9_brid=C3=A9?= %(nbdeco)d fois pour upload en un mois !
|
|
||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
|
|
||||||
L'adhérent %(proprio)s a été bridé %(nbdeco)d fois pour upload en un mois !
|
|
||||||
|
|
||||||
Le PS a été généré et se trouve sur zamok :
|
|
||||||
%(ps)s
|
|
||||||
|
|
||||||
--\u0020
|
|
||||||
Message créé par deconnexion.py"""
|
|
|
@ -28,11 +28,6 @@ hard = 8192 # Mio/24h glissantes
|
||||||
#: max déconnexions
|
#: max déconnexions
|
||||||
max_decos = 7
|
max_decos = 7
|
||||||
|
|
||||||
#: envoyer des mails à disconnect@ en cas de dépassement soft ?
|
|
||||||
disconnect_mail_soft = False
|
|
||||||
#: envoyer des mails à disconnect@ en cas de dépassement hard ?
|
|
||||||
disconnect_mail_hard = True
|
|
||||||
|
|
||||||
#: expéditeur des mails de déconnexion
|
#: expéditeur des mails de déconnexion
|
||||||
expediteur = "disconnect@crans.org"
|
expediteur = "disconnect@crans.org"
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{{ proprio|name }} a été bridé
|
{{ proprio|name }} a été bridé{% if nb_decos %} ({{ nb_decos }} fois ce mois){% endif %}
|
||||||
|
|
|
@ -17,6 +17,12 @@ Une erreur a eu lieu lors de la génération de l'url, plus d'information :
|
||||||
{{ reco_url_error }}
|
{{ reco_url_error }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if fiche_deco %}
|
||||||
|
Cet adhérent a déjà été déconnecté {{ nb_decos }} fois ce mois.
|
||||||
|
Une fiche a été générée :
|
||||||
|
{{ fiche_deco }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
--
|
--
|
||||||
Système de déconnexion, {{ mailer }}
|
Système de déconnexion, {{ mailer }}
|
||||||
Cron exécuté à {{ cron_date }}.
|
Cron exécuté à {{ cron_date }}.
|
||||||
|
|
|
@ -16,7 +16,6 @@ import datetime
|
||||||
import pytz
|
import pytz
|
||||||
import cStringIO
|
import cStringIO
|
||||||
|
|
||||||
import gestion.config.mails.upload as mails_upload
|
|
||||||
import gestion.affichage as affichage
|
import gestion.affichage as affichage
|
||||||
import lc_ldap.shortcuts as shortcuts
|
import lc_ldap.shortcuts as shortcuts
|
||||||
import lc_ldap.objets as objets
|
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))
|
sys.stderr.write("Blacklist de %s pour %s Mo échoué, %s\n" % (proprio.dn.split(',')[0], elupload, error))
|
||||||
return
|
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 à l'adhérent
|
||||||
# On envoie un mail à disconnect
|
# On envoie un mail à disconnect
|
||||||
################################
|
################################
|
||||||
|
@ -302,41 +323,6 @@ def upload_hard(proprio, elupload, elid, eltype, curseur, ldap):
|
||||||
else:
|
else:
|
||||||
print corps
|
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):
|
def upload_soft(proprio, elupload, elid, eltype, curseur):
|
||||||
"""Envoit un mail et stocke l'info"""
|
"""Envoit un mail et stocke l'info"""
|
||||||
# On inscrit l'ip dans la table des avertis soft
|
# On inscrit l'ip dans la table des avertis soft
|
||||||
|
@ -361,21 +347,6 @@ def upload_soft(proprio, elupload, elid, eltype, curseur):
|
||||||
else:
|
else:
|
||||||
print corps
|
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):
|
def single_check(eltype, elid, elupload, ldap, curseur):
|
||||||
"""Fait un test sur un utilisateur, et
|
"""Fait un test sur un utilisateur, et
|
||||||
applique une blackliste ou envoit un averto."""
|
applique une blackliste ou envoit un averto."""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue