[deconnexion.py,fiche_deconnexion] Corrections vis-a-vis des accents
Ca permettait aux gens qui avaient un accent dans leur nom de ne pas se faire deconnecter (plantage du script generate.py et donc de deconnexion.py). Par ailleurs, si generate.py plante, deconnexion.py deconnecte quand meme. darcs-hash:20100509145618-ddb99-8d9ab159498056ef83de79bc6e2ff62247803c3c.gz
This commit is contained in:
parent
3ef5e506f8
commit
bb69478a32
2 changed files with 34 additions and 6 deletions
|
@ -211,7 +211,11 @@ 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
|
||||||
|
try:
|
||||||
fichier_ps = generate_ps('upload', proprio, ldap)
|
fichier_ps = generate_ps('upload', proprio, ldap)
|
||||||
|
except:
|
||||||
|
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 aid=%d" % proprio.id())
|
||||||
|
|
||||||
# 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}
|
||||||
|
@ -469,8 +473,13 @@ 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:
|
||||||
|
# Génération du fichier postscript
|
||||||
|
try:
|
||||||
fichier_ps = generate_ps('p2p', proprio, ldap)
|
fichier_ps = generate_ps('p2p', proprio, ldap)
|
||||||
|
except:
|
||||||
|
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 --p2p aid=%d" % proprio.id())
|
||||||
|
|
||||||
# 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,
|
||||||
|
|
|
@ -12,10 +12,14 @@ Licence : GPL v2
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
sys.path.append('/usr/scripts/gestion')
|
sys.path.append('/usr/scripts/gestion')
|
||||||
|
|
||||||
from ldap_crans import crans_ldap
|
from ldap_crans import crans_ldap
|
||||||
from time import *
|
|
||||||
from config import upload
|
from config import upload
|
||||||
|
|
||||||
|
from time import *
|
||||||
|
from unicodedata import normalize
|
||||||
import commands
|
import commands
|
||||||
|
|
||||||
# logging tools
|
# logging tools
|
||||||
import syslog
|
import syslog
|
||||||
def log(x):
|
def log(x):
|
||||||
|
@ -38,8 +42,22 @@ Les sanctions disponibles sont :
|
||||||
usage: generate.py --sanction recherche_ldap
|
usage: generate.py --sanction recherche_ldap
|
||||||
Le motif de recherche dans la base ldap doit donné un résultat unique""" % "\n\t--".join(map(lambda x: x,sanctions))
|
Le motif de recherche dans la base ldap doit donné un résultat unique""" % "\n\t--".join(map(lambda x: x,sanctions))
|
||||||
|
|
||||||
|
def decode(s):
|
||||||
|
u"""
|
||||||
|
Retourne un unicode à partir de s
|
||||||
|
s doit être en utf-8
|
||||||
|
"""
|
||||||
|
|
||||||
|
if type(s) is unicode:
|
||||||
|
# Si s est déjà un unicode, on ne décode pas
|
||||||
|
return s
|
||||||
|
else:
|
||||||
|
return s.decode('utf-8', 'ignore') # On ignore les erreurs
|
||||||
|
|
||||||
|
def strip_accents(a):
|
||||||
|
u""" Supression des accents de la chaîne fournie """
|
||||||
|
res = normalize('NFKD', decode(a)).encode('ASCII', 'ignore')
|
||||||
|
return res.replace(' ', '_').replace("'", '')
|
||||||
|
|
||||||
def generate_ps(sanction, proprio, db):
|
def generate_ps(sanction, proprio, db):
|
||||||
"""En fonction de la sanction à appliquer au propriétaire,
|
"""En fonction de la sanction à appliquer au propriétaire,
|
||||||
|
@ -51,8 +69,8 @@ def generate_ps(sanction, proprio, db):
|
||||||
dossier = '/usr/scripts/surveillance/fiche_deconnexion'
|
dossier = '/usr/scripts/surveillance/fiche_deconnexion'
|
||||||
|
|
||||||
# Base pour le nom du fichier
|
# Base pour le nom du fichier
|
||||||
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().\
|
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction,
|
||||||
lower().replace(' ', '-'))
|
strip_accents(proprio.Nom().lower().replace(' ', '-')))
|
||||||
|
|
||||||
# Création du fichier tex
|
# Création du fichier tex
|
||||||
format_date = '%A %d %B %Y'
|
format_date = '%A %d %B %Y'
|
||||||
|
@ -93,7 +111,8 @@ def generate_ps(sanction, proprio, db):
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
log('Erreur lors de la génération du ps : ')
|
log('Erreur lors de la génération du ps : ')
|
||||||
log(str(e))
|
log(str(e))
|
||||||
log("Values : sanction:%s adherent:%s" % (sanction, proprio.Nom()))
|
log("Values : sanction:%s adherent:%s" % (sanction,
|
||||||
|
strip_accents(proprio.Nom())))
|
||||||
log(crans.utils.exceptions.formatExc())
|
log(crans.utils.exceptions.formatExc())
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue