diff --git a/find_individus.py b/find_individus.py index eae744e..32cb72d 100644 --- a/find_individus.py +++ b/find_individus.py @@ -3,6 +3,9 @@ import xml.etree.ElementTree as ET from pathlib import Path from scribe.eoleldap import get_etabs +from scribe.enseignants import Enseignant +from scribe.eoleldap import Ldap + current_etabs = get_etabs()[1] @@ -40,6 +43,11 @@ for xml in root.glob('**/sts_emp*.xml'): etabs = list(set(etabs)) +def guess_uid(individu): + nom = individu[0]['nom'] + prenom = individu[0]['prenom'] + return f"{prenom.lower()}.{nom.lower()}" + if __name__ == '__main__': from argparse import ArgumentParser parser = ArgumentParser() @@ -61,6 +69,18 @@ if __name__ == '__main__': result = current_etabs elif args.type == 'etabs': result = etabs + elif args.type == 'candidates': + connexion = Ldap() + connexion.connect() + user = Enseignant() + user.ldap_admin = connexion + candidates = {user.get_attr(candidate, 'intid')[0]: [etab] + for etab in etabs + for candidate in connexion._search('(&(objectclass=eolegroupe)(type=etablissement)(cn={etab}))'.format(etab=etab), + ['memberUid'])[0][1]['memberUid'] + if user._is_enseignant(candidate)} + result = ["{}\t{}".format(e[0]['nom'], " ".join(sorted(set(e)) + candidates[candidate])) for candidate in candidates for e in repartition[candidate] if len(set(e)) > 1] + else: result = [] print("\n".join(sorted(result)))