[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:
|
||||
|
||||
# Génération du fichier postscript
|
||||
try:
|
||||
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
|
||||
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' ])
|
||||
if nb_decos >= 3:
|
||||
|
||||
# Génération du fichier postscript
|
||||
try:
|
||||
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
|
||||
corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur,
|
||||
'to': p2p.expediteur,
|
||||
|
|
|
@ -12,10 +12,14 @@ Licence : GPL v2
|
|||
|
||||
import sys
|
||||
sys.path.append('/usr/scripts/gestion')
|
||||
|
||||
from ldap_crans import crans_ldap
|
||||
from time import *
|
||||
from config import upload
|
||||
|
||||
from time import *
|
||||
from unicodedata import normalize
|
||||
import commands
|
||||
|
||||
# logging tools
|
||||
import syslog
|
||||
def log(x):
|
||||
|
@ -38,8 +42,22 @@ Les sanctions disponibles sont :
|
|||
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))
|
||||
|
||||
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):
|
||||
"""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'
|
||||
|
||||
# Base pour le nom du fichier
|
||||
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().\
|
||||
lower().replace(' ', '-'))
|
||||
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction,
|
||||
strip_accents(proprio.Nom().lower().replace(' ', '-')))
|
||||
|
||||
# Création du fichier tex
|
||||
format_date = '%A %d %B %Y'
|
||||
|
@ -93,7 +111,8 @@ def generate_ps(sanction, proprio, db):
|
|||
except Exception, e:
|
||||
log('Erreur lors de la génération du ps : ')
|
||||
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())
|
||||
raise e
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue