]> gitweb.pimeys.fr Git - scripts-20-100.git/blobdiff - bde/old/voir_droits.py
[bde] Gros ménage : archivage de tous les scripts NK2012
[scripts-20-100.git] / bde / old / voir_droits.py
diff --git a/bde/old/voir_droits.py b/bde/old/voir_droits.py
new file mode 100755 (executable)
index 0000000..9a94fd6
--- /dev/null
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+# -*- coding:utf8 -*-
+
+""" Script pour afficher qui a quels droits.
+
+    Affiche les prénom, nom, pseudo, droits, surdroits des gens qui ont des droits!=par défaut.
+    droits et surdroits sont pretty-printés pour qu'on les comprenne.
+"""
+
+from pyPgSQL import PgSQL
+
+con=PgSQL.connect(database="bde")
+cur=con.cursor()
+
+cur.execute("SELECT prenom,nom,pseudo,droits,surdroits,supreme FROM adherents WHERE numcbde>-1"
+            +" AND NOT droits in (0,1) AND supreme='f' ORDER BY droits;")
+l=cur.fetchall()
+
+#: Correspondance binaire → droit
+dicodroits={
+        1 : "Intranet",
+        2 : "Note",
+        4 : "Consos",
+        8 : "Adhérents",
+       16 : "Boutons",
+       32 : "Inscriptions",
+       64 : "Activités",
+      128 : "Invités",
+      256 : "Transactions",
+      512 : "Forcé",
+     1024 : "Chèques",
+     2048 : "Webmaster",
+     4096 : "Wei",
+     8192 : "Sendmail",
+    16384 : "Bureau",
+    32768 : "Accès extérieur",
+    65536 : "Préinscriptions"
+    }
+
+pow2=[2**i for i in range(17)]
+vrail=[]
+for ligne in l:
+  vrail.append([ligne["prenom"],ligne["nom"],ligne["pseudo"],
+                ",".join([dicodroits[i] for i in pow2 if ligne["droits"]&i]),
+                ",".join([dicodroits[i] for i in pow2 if ligne["surdroits"]&i])])
+
+
+lenprenom = max([len(unicode(ligne[0])) for ligne in vrail]+[len(u"prénom")])
+lennom = max([len(unicode(ligne[1])) for ligne in vrail]+[len(u"nom")])
+lenpseudo = max([len(unicode(ligne[2])) for ligne in vrail]+[len(u"pseudo")])
+lendroits = max([len(unicode(ligne[3])) for ligne in vrail]+[len(u"droits")])
+lensurdroits = max([len(unicode(ligne[4])) for ligne in vrail]+[len(u"surdroits")])
+
+template=" %%-%ds | %%-%ds | %%-%ds | %%-%ds | %%-%ds \n"%(lenprenom,lennom,lenpseudo,lendroits,lensurdroits)
+
+pretty=template%("prénom","nom","pseudo","droits","surdroits")
+pretty+="-"*(lenprenom+2)+"+"+"-"*(lennom+2)+"+"+"-"*(lenpseudo+2)+"+"+"-"*(lendroits+2)+"+"+"-"*(lensurdroits+2)+"\n"
+for i in vrail:
+  pretty+=template%(tuple([unicode(j) for j in i]))
+
+print pretty