From 04303fd3dc9d1954f57a7e5b57b6c16a1db23f9a Mon Sep 17 00:00:00 2001 From: Benjamin Bohard Date: Thu, 21 Aug 2025 15:02:42 +0200 Subject: [PATCH] =?UTF-8?q?Test=20de=20script=20pour=20trouver=20des=20com?= =?UTF-8?q?ptes=20=C3=A0=20v=C3=A9rifier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- find_individus.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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)))