]> gitweb.pimeys.fr Git - scripts-20-100.git/blobdiff - bde/supprimer_quelquun.py
[bde] Gros ménage : archivage de tous les scripts NK2012
[scripts-20-100.git] / bde / supprimer_quelquun.py
diff --git a/bde/supprimer_quelquun.py b/bde/supprimer_quelquun.py
deleted file mode 100755 (executable)
index b28d711..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/python
-# -*- coding:utf8 -*-
-
-""" Codé par 20-100
-    pour "supprimer" quelqu'un dans la note, c'est-à-dire anonymiser le compte.
-"""
-
-from pretty_print import sql_pretty_print as spp
-import psycopg2, psycopg2.extras
-
-class NonZeroError(ValueError):
-    """Erreur levée en cas de tentative de suppression d'un compte de solde non nul."""
-    def __init__(self):
-        super(NonZeroError, self).__init__("Solde du compte non-nul")
-
-def liste_to_sql(l):
-    """Renvoie la liste d'entiers en chaîne sql utilisable"""
-    assert all([type(i) == int for i in l])
-    return "(" + ",".join([str(i) for i in l]) + ")"
-
-def getcursor():
-    """Ouvre une connexion à la base de données."""
-    con = psycopg2.connect(database="bde")
-    cur = con.cursor(cursor_factory=psycopg2.extras.DictCursor)
-    return con, cur
-
-def get_comptes(liste):
-    """Récupère les comptes entre début et fin.
-       Attention au contenu de liste, quand même."""
-    con, cur = getcursor()
-    cur.execute("SELECT * FROM adherents WHERE numcbde in %s ORDER BY numcbde;" % liste_to_sql(liste))
-    l = cur.fetchall()
-    return l
-
-def check_impossibles(l):
-    """On ne peut pas "supprimer" un compte dont le solde est non nul."""
-    paspossibles = [i for i in l if i["solde"]!=0]
-    if len(paspossibles) > 0:
-        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]))
-        raise NonZeroError
-
-def supprime(liste):
-    """Supprime les comptes dont le numcbde est dans ``liste``."""
-    l = get_comptes(liste)
-    check_impossibles(l)
-    con, cur = getcursor()
-    cur.execute("""UPDATE adherents
-                   SET prenom='Erreur', nom='Erreur', sexe='E', pseudo=numcbde,
-                       passwd='!', section='', adresse='', email='nobody@crans.org',
-                       droits=0, surdroits=0, supreme='f', bloque='t', fonction='',
-                       mail_info=0, club='f', telephone='', theme='UNI', pbsante='',
-                       normalien='t', numsecu='' WHERE numcbde in %s;
-                """ % (liste_to_sql(liste)))
-    cur.execute("COMMIT;")
-
-def interactive_begin():
-    """Détermine la liste des comptes à supprimer de manière interactive."""
-    print "\e[1;31mAttention, je ne supprime rien, je ne fais que transformer en Erreur,Erreur...\e[0m"
-    
-    debut = raw_input("Premier id : ")
-    debut = int(debut)
-    fin = raw_input("Dernier id (vide pour 1 seul) : ")
-    if fin == "":
-        fin = debut
-    else:
-        fin = int(fin)
-    
-    return range(debut, fin+1)
-
-def interactive_delete(liste):
-    """Supprime les comptes de manière interactive."""
-    l = get_comptes(liste)
-    print spp(l, ["numcbde", "nom", "prenom", "pseudo", "solde"])
-    
-    ans=raw_input("""Êtes-vous sûr de vouloir les "supprimer" ? """)
-    if ans in ["oui","o","O","OUI","Y","y","YES","yes"]:
-        try:
-            supprime(liste)
-        except NonZeroError:
-            exit(1)
-        print "Et bim !"
-    else:
-        print "Nothing Done"
-
-if __name__ == "__main__":
-    interactive_delete(interactive_begin())