#!/usr/bin/env python3 #-*- coding: utf-8 -*- from scribe.eoleldap import Ldap from scribe.enseignant import Enseignant connection = Ldap() connection.connect() def get_unaffected_enseignants(): members = set([user for etab in connection._search("(&(objectClass=eolegroupe)(type=etablissement))", ['memberUid']) for user in etab[1].get('memberUid', [])]) users = set([user[1]['uid'][0] for user in connection._search("(objectClass=administrateur)", ['uid'])]) unaffected_users = users.difference(members) return unaffected_users if __name__ == "__main__": from argparse import ArgumentParser parser = ArgumentParser(description="Purge des comptes enseignants non affectés") parser.add_argument("-s", "--save", action="store_true", help="Archiver les données personnelles") args = parser.parse_args() remove_data = not args.save enseignant = Enseignant() for unaffected_enseignant in get_unaffected_enseignants(): enseignant._delete(unaffected_enseignant, remove_data=remove_data)