scripts/utils/list_droits.py
Pierre-Elliott Bécue 21176bfcf9 Nettoie list_droits.py
* Fonctions plus bloc main
 * On n'utilise pas .rights(), car elle surcharge la liste des droits
 * Améliore un peu le code
2015-08-18 03:49:21 +02:00

51 lines
1.4 KiB
Python
Executable file

#!/bin/bash /usr/scripts/python.sh
# -*- coding: utf-8 -*-
#
# list_droits.py --- Récupère la liste des adhérents ayant actuellement
# des droits.
"""Récupère la liste des adhérents avec des droits et l'affiche
triée par type de droit."""
from lc_ldap import shortcuts
from config.encoding import out_encoding
def fetch_adhs(ldap):
"""Récupère la liste des adhérents avec des droits et
les trie par droits actuellement possédés"""
adhs_avec_droits = ldap.search(u"droits=*")
adhs_par_droit = {}
for adh in adhs_avec_droits:
for droit in adh['droits']:
adhs_par_droit.setdefault(droit, []).append(adh)
return adhs_par_droit
def make_output(adhs_par_droit):
"""Génère une sortie à partir de la liste d'adhérents
triés par droits"""
d = adhs_par_droit.keys()
d.sort()
output = []
for droit in d:
adhs = adhs_par_droit[droit]
noms = []
txt = '%s\n' % droit
for adh in adhs :
noms.append(u'%s %s' % (adh['prenom'][0], adh['nom'][0]))
noms.sort()
txt += u' %s' % '\n '.join(noms)
output.append(txt)
return output
if __name__ == '__main__':
LDAP = shortcuts.lc_ldap_readonly()
OUTPUT = make_output(fetch_adhs(LDAP))
print u'\n- - - - - - = = = = = = # # # # # # # # = = = = = = - - - - - -\n'.join(OUTPUT).encode(out_encoding)