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