diff --git a/surveillance/fiche_deconnexion/deconnexion_p2p.tex b/surveillance/fiche_deconnexion/deconnexion_p2p.tex index a3980771..c6f35557 100644 --- a/surveillance/fiche_deconnexion/deconnexion_p2p.tex +++ b/surveillance/fiche_deconnexion/deconnexion_p2p.tex @@ -9,7 +9,7 @@ \usepackage{alltt} \usepackage[dvips]{eso-pic,graphicx} \usepackage{color} -\usepackage[latin1]{inputenc} +\usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} @@ -31,7 +31,7 @@ \pagestyle{fancy} \renewcommand{\headrulewidth}{0.8pt} \renewcommand{\footrulewidth}{0.2pt} -\lhead{\textbf{Notification de déconnexion}} +\lhead{\textbf{Notification de déconnexion}} \rhead{\textbf{CR@NS}} \cfoot{\textbf{CR@NS}} @@ -71,7 +71,7 @@ \begin{tabular}[c]{c} \hline \vspace{0.1cm} \\ - \Huge{\textbf{Notification de déconnexion}}\\ + \Huge{\textbf{Notification de déconnexion}}\\ \vspace{0.1cm} \\ \hline \end{tabular} @@ -83,7 +83,7 @@ \begin{center} \begin{minipage}{0.5\textwidth} \textbf{Nom} \dotfill{} \nom \\ - \textbf{Prénom} \dotfill{} \prenom \\ + \textbf{Prénom} \dotfill{} \prenom \\ \textbf{Chambre} \dotfill{} \chambre \\ \textbf{Email} \dotfill{} \texttt{\email} \end{minipage} @@ -93,46 +93,46 @@ \noindent\fcolorbox[gray]{0}{0.85}{% \begin{minipage}[t]{0.7\textwidth}% \begin{center} - \large Tes machines ont été déconnectées pour environ \textbf{\duree{}}, du - \textbf{\depuis{}} jusqu'au \textbf{\jusquau{}} (inclus) pour usage de logiciels de pair à pair (P2P). + \large Tes machines ont été déconnectées pour environ \textbf{\duree{}}, du + \textbf{\depuis{}} jusqu'au \textbf{\jusquau{}} (inclus) pour usage de logiciels de pair à pair (P2P). \end{center} \end{minipage}} \end{center} \vspace{0.3cm} \begin{multicols}{2} -{\small En effet, tes machines ont communiquées avec l'extérieur en utilisant -des protocoles de P2P, ce qui est interdit par la charte que tu as signée +{\small En effet, tes machines ont communiquées avec l'extérieur en utilisant +des protocoles de P2P, ce qui est interdit par la charte que tu as signée (\url{http://www.crans.org/CransAdministratif/CharteDuCrans}). Ce point est -d'ailleurs rappelé sur l'exemplaire du formulaire d'adhésion que tu as -conservé. Les causes les plus communes sont l'utilisation d'un service +d'ailleurs rappelé sur l'exemplaire du formulaire d'adhésion que tu as +conservé. Les causes les plus communes sont l'utilisation d'un service de \emph{peer to peer} type Kazaa, Morpheus, eDonkey. -Il n'existe pour ce genre d'actions qu'une très faible tolérance que -tu as dépassé à plusieurs reprises malgré plusieurs alertes par -mail\footnote{Si tu n'as pas reçu les +Il n'existe pour ce genre d'actions qu'une très faible tolérance que +tu as dépassé à plusieurs reprises malgré plusieurs alertes par +mail\footnote{Si tu n'as pas reçu les mails en question, c'est que tu ne consultes pas ton mail ; tu -\emph{dois} consulter régulièrement ton adresse \email. Si tu veux -utiliser une autre adresse mail, adresse-toi à ton câbleur pour le -changement.} accompagnés à chaque fois d'une déconnexion de 24h. -Voici l'historique de tes déconnexions : +\emph{dois} consulter régulièrement ton adresse \email. Si tu veux +utiliser une autre adresse mail, adresse-toi à ton câbleur pour le +changement.} accompagnés à chaque fois d'une déconnexion de 24h. +Voici l'historique de tes déconnexions : \begin{center} \begin{tabular}[c]{p{5cm}} \historique \end{tabular} \end{center} -Tous les services te sont retirés durant la durée de la déconnexion, -\textbf{notamment l'accès à Internet}, à l'exception +Tous les services te sont retirés durant la durée de la déconnexion, +\textbf{notamment l'accès à Internet}, à l'exception \ifthenelse{\boolean{mailcrans}}{du mail (sur le serveur de - l'association uniquement) et }{}de l'accès au serveur Web de -l'association (désactive le proxy si tu ne parviens pas à y accéder). -Note également que tu es responsable de l'utilisation qui est faite de + l'association uniquement) et }{}de l'accès au serveur Web de +l'association (désactive le proxy si tu ne parviens pas à y accéder). +Note également que tu es responsable de l'utilisation qui est faite de tes machines. Le fait que tu ne saches pas que certains programmes -utilisent des protocoles de P2P ne te dispense pas de ta responsabilité. +utilisent des protocoles de P2P ne te dispense pas de ta responsabilité. -Si tu as des questions supplémentaires, envoie les à \url{disconnect@crans.org}. -Il est inutile d'aller déranger ton câbleur qui ne gère pas ce problème.} +Si tu as des questions supplémentaires, envoie les à \url{disconnect@crans.org}. +Il est inutile d'aller déranger ton câbleur qui ne gère pas ce problème.} \vspace{0.3cm} \noindent\fcolorbox[gray]{0}{0.98}{\begin{minipage}{0.5\textwidth} @@ -142,41 +142,41 @@ Il est inutile d'aller d $\mathcal{R}:$ \emph{#2}} {\small -\qa{Pourquoi n'ai-je pas été prévenu plus tôt ?}% -{Trois mails au minimum ont été envoyés en moins d'un an à ce sujet - sur l'adresse email indiquée sur cette fiche. Il nous faut nécessairement une +\qa{Pourquoi n'ai-je pas été prévenu plus tôt ?}% +{Trois mails au minimum ont été envoyés en moins d'un an à ce sujet + sur l'adresse email indiquée sur cette fiche. Il nous faut nécessairement une adresse valide pour te contacter dans les cas similaires. Tu dois donc - lire le mail arrivant à cette adresse ou en indiquer une autre à ton - câbleur.\\ - Ces mails étaient de plus accompagnés chacun d'une déconnexion de 24h. + lire le mail arrivant à cette adresse ou en indiquer une autre à ton + câbleur.\\ + Ces mails étaient de plus accompagnés chacun d'une déconnexion de 24h. } -\qa{J'ai prêté ma chambre à un ami.}% -{La connexion est personnelle, à ton nom et tu en es responsable.} +\qa{J'ai prêté ma chambre à un ami.}% +{La connexion est personnelle, à ton nom et tu en es responsable.} \qa{Je ne savais pas que tel programme utilisait un protocole de P2P.}% -{Dans le doute, mieux vaut éviter d'utiliser des programmes dont - on ne connaît pas le fonctionnement et nous demander, notamment +{Dans le doute, mieux vaut éviter d'utiliser des programmes dont + on ne connaît pas le fonctionnement et nous demander, notamment lors des premiers mails de sanctions. Outre les programmes - comme Kazaa ou eMule, l'utilisation de certaines fonctionnalités d'un - programme peut entraîner l'usage des réseaux de P2P.} + comme Kazaa ou eMule, l'utilisation de certaines fonctionnalités d'un + programme peut entraîner l'usage des réseaux de P2P.} \qa{J'ai beaucoup de travail et j'ai besoin du net.}% -{C'est le cas des \nbadherents{} adhérents du CRANS et c'est la raison principale - de la déconnexion. Nous avons des contraintes extérieures nous - obligeant à réguler certains usages afin de conserver la connexion - au réseau.} +{C'est le cas des \nbadherents{} adhérents du CRANS et c'est la raison principale + de la déconnexion. Nous avons des contraintes extérieures nous + obligeant à réguler certains usages afin de conserver la connexion + au réseau.} \qa{Je dois rendre un projet demain !}% -{Pas d'exception, ton école fournit sans doute une connexion à Internet, c'est - moins confortable que depuis chez soi, mais ça marche quand même. Nous ne pouvons faire +{Pas d'exception, ton école fournit sans doute une connexion à Internet, c'est + moins confortable que depuis chez soi, mais ça marche quand même. Nous ne pouvons faire absolument \textbf{aucune} exception !} -\qa{J'ai payé !}% -{Il s'agit de l'adhésion à une association et nous avons des contraintes - supplémentaires par rapport à un fournisseur d'accès classique. Les - statuts nous autorisent à suspendre la connexion en cas de manquement - à la charte que tu as signée.}} +\qa{J'ai payé !}% +{Il s'agit de l'adhésion à une association et nous avons des contraintes + supplémentaires par rapport à un fournisseur d'accès classique. Les + statuts nous autorisent à suspendre la connexion en cas de manquement + à la charte que tu as signée.}} \end{minipage}} \end{multicols} diff --git a/surveillance/fiche_deconnexion/deconnexion_upload.tex b/surveillance/fiche_deconnexion/deconnexion_upload.tex index daccceaf..f358df35 100644 --- a/surveillance/fiche_deconnexion/deconnexion_upload.tex +++ b/surveillance/fiche_deconnexion/deconnexion_upload.tex @@ -9,7 +9,7 @@ \usepackage{alltt} \usepackage[dvips]{eso-pic,graphicx} \usepackage{color} -\usepackage[latin1]{inputenc} +\usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} @@ -31,7 +31,7 @@ \pagestyle{fancy} \renewcommand{\headrulewidth}{0.8pt} \renewcommand{\footrulewidth}{0.2pt} -\lhead{\textbf{Notification de déconnexion}} +\lhead{\textbf{Notification de déconnexion}} \rhead{\textbf{CR@NS}} \cfoot{\textbf{CR@NS}} @@ -72,7 +72,7 @@ \begin{tabular}[c]{c} \hline \vspace{0.1cm} \\ - \Huge{\textbf{Notification de déconnexion}}\\ + \Huge{\textbf{Notification de déconnexion}}\\ \vspace{0.1cm} \\ \hline \end{tabular} @@ -84,7 +84,7 @@ \begin{center} \begin{minipage}{0.5\textwidth} \textbf{Nom} \dotfill{} \nom \\ - \textbf{Prénom} \dotfill{} \prenom \\ + \textbf{Prénom} \dotfill{} \prenom \\ \textbf{Chambre} \dotfill{} \chambre \\ \textbf{Email} \dotfill{} \texttt{\email} \end{minipage} @@ -94,7 +94,7 @@ \noindent\fcolorbox[gray]{0}{0.85}{% \begin{minipage}[t]{0.7\textwidth}% \begin{center} - \large Tes machines ont été déconnectées pour environ \textbf{\duree{}}, du + \large Tes machines ont été déconnectées pour environ \textbf{\duree{}}, du \textbf{\depuis{}} jusqu'au \textbf{\jusquau{}} (inclus) pour upload. \end{center} \end{minipage}} @@ -102,19 +102,19 @@ \vspace{0.3cm} \begin{multicols}{2} -{\small En effet, tes machines ont envoyé une quantité importante de données vers -l'extérieur, ce qui est interdit par la charte que tu as signée +{\small En effet, tes machines ont envoyé une quantité importante de données vers +l'extérieur, ce qui est interdit par la charte que tu as signée (\url{http://www.crans.org/CransAdministratif/CharteDuCrans}). Ce point est -d'ailleurs rappelé sur l'exemplaire du formulaire d'adhésion que tu as -conservé. Les causes les plus communes sont l'utilisation d'un service +d'ailleurs rappelé sur l'exemplaire du formulaire d'adhésion que tu as +conservé. Les causes les plus communes sont l'utilisation d'un service de \emph{peer to peer} type Kazaa, Morpheus, eDonkey. La limite est de ~limitehard~ Mo par jour\footnote{Avant le 3 mai 2004, la -limite était de 100 Mo.} et tu as dépassé plusieurs fois cette limite -malgré plusieurs rappels par mail\footnote{Si tu n'as pas reçu les +limite était de 100 Mo.} et tu as dépassé plusieurs fois cette limite +malgré plusieurs rappels par mail\footnote{Si tu n'as pas reçu les mails en question, c'est que tu ne consultes pas ton mail ; tu -\emph{dois} consulter régulièrement ton adresse \email. Si tu veux -utiliser une autre adresse mail, adresse-toi à ton câbleur pour le +\emph{dois} consulter régulièrement ton adresse \email. Si tu veux +utiliser une autre adresse mail, adresse-toi à ton câbleur pour le changement.}. Voici l'historique : \begin{center} \begin{tabular}[c]{p{5cm}ll} @@ -122,18 +122,18 @@ changement.}. Voici l'historique : \end{tabular} \end{center} -Tous les services te sont retirés durant la durée de la déconnexion, -\textbf{notamment l'accès à Internet}, à l'exception +Tous les services te sont retirés durant la durée de la déconnexion, +\textbf{notamment l'accès à Internet}, à l'exception \ifthenelse{\boolean{mailcrans}}{du mail (sur le serveur de - l'association uniquement) et }{}de l'accès au serveur Web de -l'association (désactive le proxy si tu ne parviens pas à y accéder). -Note également que tu es responsable de l'utilisation qui est faite de + l'association uniquement) et }{}de l'accès au serveur Web de +l'association (désactive le proxy si tu ne parviens pas à y accéder). +Note également que tu es responsable de l'utilisation qui est faite de tes machines. Le fait que tu ne saches pas que certains programmes -envoient des quantités importantes de données ne te dispense pas de ta -responsabilité. +envoient des quantités importantes de données ne te dispense pas de ta +responsabilité. -Si tu as des questions supplémentaires, envoie les à \url{disconnect@crans.org}. -Il est inutile d'aller déranger ton câbleur qui ne gère pas ce problème.} +Si tu as des questions supplémentaires, envoie les à \url{disconnect@crans.org}. +Il est inutile d'aller déranger ton câbleur qui ne gère pas ce problème.} \vspace{0.3cm} \noindent\fcolorbox[gray]{0}{0.98}{\begin{minipage}{0.5\textwidth} @@ -143,40 +143,40 @@ Il est inutile d'aller d $\mathcal{R}:$ \emph{#2}} {\small -\qa{Pourquoi n'ai-je pas été prévenu plus tôt ?}% -{Six mails au minimum ont été envoyés en moins d'un mois à ce sujet - sur l'adresse email indiquée sur cette fiche. Il nous faut nécessairement une +\qa{Pourquoi n'ai-je pas été prévenu plus tôt ?}% +{Six mails au minimum ont été envoyés en moins d'un mois à ce sujet + sur l'adresse email indiquée sur cette fiche. Il nous faut nécessairement une adresse valide pour te contacter dans les cas similaires. Tu dois donc - lire le mail arrivant à cette adresse ou en indiquer une autre à ton - câbleur.} + lire le mail arrivant à cette adresse ou en indiquer une autre à ton + câbleur.} -\qa{J'ai prêté ma chambre à un ami.}% -{La connexion est personnelle, à ton nom et tu en es responsable.} +\qa{J'ai prêté ma chambre à un ami.}% +{La connexion est personnelle, à ton nom et tu en es responsable.} \qa{Je ne savais pas que tel programme uploadait.}% -{Dans le doute, mieux vaut éviter d'utiliser des programmes dont - on ne connaît pas le fonctionnement et nous demander, notamment +{Dans le doute, mieux vaut éviter d'utiliser des programmes dont + on ne connaît pas le fonctionnement et nous demander, notamment lors des premiers mails d'avertissement. Outre les programmes - comme Kazaa ou eMule qui de toute façon sont strictement interdits - d'utilisation sur le réseau CRANS, l'utilisation d'une webcam peut - entraîner un upload important.} + comme Kazaa ou eMule qui de toute façon sont strictement interdits + d'utilisation sur le réseau CRANS, l'utilisation d'une webcam peut + entraîner un upload important.} \qa{J'ai beaucoup de travail et j'ai besoin du net.}% -{C'est le cas des \nbadherents{} adhérents du CRANS et c'est la raison principale - de la déconnexion. Nous avons des contraintes extérieures nous - obligeant à réguler certains usages afin de conserver la connexion - au réseau.} +{C'est le cas des \nbadherents{} adhérents du CRANS et c'est la raison principale + de la déconnexion. Nous avons des contraintes extérieures nous + obligeant à réguler certains usages afin de conserver la connexion + au réseau.} \qa{Je dois rendre un projet demain !}% -{Pas d'exception, ton école fournit sans doute une connexion à Internet, c'est - moins confortable que depuis chez soi, mais ça marche quand même. Nous ne pouvons faire +{Pas d'exception, ton école fournit sans doute une connexion à Internet, c'est + moins confortable que depuis chez soi, mais ça marche quand même. Nous ne pouvons faire absolument \textbf{aucune} exception !} -\qa{J'ai payé !}% -{Il s'agit de l'adhésion à une association. D'autre part nous avons des - contraintes supplémentaires par rapport à un fournisseur d'accès - classique. Les statuts nous autorisent à suspendre la connexion en cas - de manquement à la charte que tu as signée.}} +\qa{J'ai payé !}% +{Il s'agit de l'adhésion à une association. D'autre part nous avons des + contraintes supplémentaires par rapport à un fournisseur d'accès + classique. Les statuts nous autorisent à suspendre la connexion en cas + de manquement à la charte que tu as signée.}} \end{minipage}} \end{multicols} diff --git a/surveillance/fiche_deconnexion/generate.py b/surveillance/fiche_deconnexion/generate.py index 96d6e1cb..43e2f8ac 100755 --- a/surveillance/fiche_deconnexion/generate.py +++ b/surveillance/fiche_deconnexion/generate.py @@ -1,15 +1,17 @@ #! /usr/bin/env python -# -*- coding: iso-8859-15 -*- +# -*- encoding: utf-8 -*- """ -Script de génération de feuille de déconnexion pour : +Script de génération de feuille de déconnexion pour : - upload - p2p -Copyright (C) Xavier Pessoles, Étienne Chové, Vincent Bernat, Nicolas Salles +Copyright (C) Xavier Pessoles, Étienne Chové, Vincent Bernat, Nicolas Salles Licence : GPL v2 """ +encoding = "UTF-8" + import sys sys.path.append('/usr/scripts/gestion') @@ -37,56 +39,56 @@ locale.setlocale(locale.LC_TIME, 'fr_FR.utf8') sanctions = ['upload', 'p2p'] -help = """Script de génération d'une feuille de déconnexion. +help = """Script de génération d'une feuille de déconnexion. Les sanctions disponibles sont : \t--%s 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 + 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 + # 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 """ + 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, - on génère la feuille de déconnexion et on retourne son nom et + """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.""" try: log('Generate deconnexion notice for %s' % proprio.Nom()) - # Dossier de génération du ps + # 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, strip_accents(proprio.Nom().lower().replace(' ', '-'))) - # Création du fichier tex + # 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('~prenom~', proprio.prenom().encode(encoding)) + template = template.replace('~nom~', proprio.nom().encode(encoding)) + template = template.replace('~chambre~', proprio.chbre().encode(encoding)) + template = template.replace('~mail~', proprio.email().encode(encoding)) 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', 'ignore').split('$') for bl in proprio.blacklist() if bl.split('$')[2] == 'autodisc_%s' % sanction ] + historique = [ bl.encode(encoding, 'ignore').split('$') for bl in proprio.blacklist() if bl.split('$')[2] == 'autodisc_%s' % sanction ] # transfomation en tuple (date, sanction) historique = [ (strftime('%A %d %B %Y', localtime(int(bl[0]))), bl[-1]) for bl in historique ] - # On ne prend au maximum que les 5 dernières occurences + # On ne prend au maximum que les 5 dernières occurences historique = historique[-5:] # tranformation en ligne if sanction == 'upload' : @@ -106,17 +108,17 @@ def generate_ps(sanction, proprio, db): file('%s/%s.tex' % (dossier, fichier), 'w').write(template) # Compilation du fichier latex - # Paquets nécessaires : texlive-latex-base, texlive-latex-recommended, + # Paquets nécessaires : texlive-latex-base, texlive-latex-recommended, # texlive-latex-extra, texlive-lang-french, texlive-luatex, # texlive-pstricks commande = '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} status, output = commands.getstatusoutput(commande) if status != 0: - log('Erreur lors de la génération du ps : ') + log('Erreur lors de la génération du ps : ') log(output) return '%s/%s.ps' % (dossier, fichier) 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("Values : sanction:%s adherent:%s" % (sanction, strip_accents(proprio.Nom()))) @@ -142,11 +144,11 @@ if __name__ == "__main__": sanction = s if not sanction : - print "Erreur : aucune sanction définie.\n" + print "Erreur : aucune sanction définie.\n" aide() if len(sys.argv) <= 2 : - print "Erreur : aucun motif de recherche défini.\n" + print "Erreur : aucun motif de recherche défini.\n" aide() else : motif = sys.argv[-1] @@ -154,14 +156,14 @@ if __name__ == "__main__": recherche = db.search(motif)['adherent'] if len(recherche) == 0: - print "Erreur : aucun résultat pour %s.\n" % motif + print "Erreur : aucun résultat pour %s.\n" % motif aide() elif len(recherche) != 1: - print "Erreur : plusieurs résultats pour %s.\n" % motif + print "Erreur : plusieurs résultats pour %s.\n" % motif aide() else : adherent = recherche[0] - # On génére alors le postscript + # On génére alors le postscript fichier = generate_ps(sanction, adherent, db) - print u'Le fichier %s a été généré.' % fichier + print u'Le fichier %s a été généré.' % fichier