#!/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)