]>
gitweb.pimeys.fr Git - scripts-20-100.git/blob - bde/supprimer_quelquun.py
5 pour "supprimer" quelqu'un dans la note, c'est-à-dire anonymiser le compte.
8 from pretty_print
import sql_pretty_print
as spp
9 import psycopg2
, psycopg2
.extras
11 class NonZeroError(ValueError):
12 """Erreur levée en cas de tentative de suppression d'un compte de solde non nul."""
14 super(NonZeroError
, self
).__init
__("Solde du compte non-nul")
17 """Ouvre une connexion à la base de données."""
18 con
= psycopg2
.connect(database
="bde")
19 cur
= con
.cursor(cursor_factory
=psycopg2
.extras
.DictCursor
)
22 def get_comptes(debut
, fin
):
23 """Récupère les comptes entre début et fin."""
24 con
, cur
= getcursor()
25 cur
.execute("SELECT * FROM adherents WHERE numcbde>=%s AND numcbde<=%s ORDER BY numcbde;", (debut
,fin
))
29 def check_impossibles(l
):
30 """On ne peut pas "supprimer" un compte dont le solde est non nul."""
31 paspossibles
= [i
for i
in l
if i
["solde"]!=0]
32 if len(paspossibles
) > 0:
33 print "\e[1;31mJe supprimerai pas quelqu'un dont le solde n'est pas nul : %s\e[0m" % (",".join([str(adh
["numcbde"]) for adh
in paspossibles
]))
36 def supprime(debut
, fin
):
37 """Supprime les comptes de numcbde entre ``debut`` et ``fin`` (compris)."""
38 l
= get_comptes(debut
, fin
)
40 con
, cur
= getcursor()
41 cur
.execute("""UPDATE adherents
42 SET prenom='Erreur', nom='Erreur', sexe='E', pseudo=numcbde,
43 passwd='!', section='', adresse='', email='nobody@crans.org',
44 droits=0, surdroits=0, supreme='f', bloque='t', fonction='',
45 mail_info=0, club='f', telephone='', theme='UNI', pbsante='',
46 normalien='t', numsecu='' WHERE numcbde>=%s AND numcbde<=%s;
48 cur
.execute("COMMIT;")
51 """Exécute le script de manière interactive."""
52 print "\e[1;31mAttention, je ne supprime rien, je ne fais que transformer en Erreur,Erreur...\e[0m"
54 debut
= raw_input("Premier id : ")
56 fin
= raw_input("Dernier id (vide pour 1 seul) : ")
62 l
= get_comptes(debut
, fin
)
63 print spp(l
, ["numcbde", "nom", "prenom", "pseudo", "solde"])
65 ans
=raw_input("""Êtes-vous sûr de vouloir les "supprimer" ? """)
66 if ans
in ["oui","o","O","OUI","Y","y","YES","yes"]:
75 if __name__
== "__main__":