Ajout d’un script à tester pour la purge des comptes non affectés
This commit is contained in:
33
purge_unaffected_enseignants.py
Normal file
33
purge_unaffected_enseignants.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#!/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)
|
Reference in New Issue
Block a user