pahekoldap
This commit is contained in:
@@ -10,6 +10,11 @@ from lib.misc import get_disk_size
|
|||||||
paheko = Paheko()
|
paheko = Paheko()
|
||||||
categorie_membres = paheko.get_categorie_id("Membres")
|
categorie_membres = paheko.get_categorie_id("Membres")
|
||||||
membres = paheko.get_users_in_categorie(categorie_membres)
|
membres = paheko.get_users_in_categorie(categorie_membres)
|
||||||
|
categorie_collegiale = paheko.get_categorie_id("Collégiale")
|
||||||
|
membres += paheko.get_users_in_categorie(categorie_collegiale)
|
||||||
|
categorie_administrateurs = paheko.get_categorie_id("Administrateurs")
|
||||||
|
membres += paheko.get_users_in_categorie(categorie_administrateurs)
|
||||||
|
|
||||||
|
|
||||||
def test_services(paheko_entry, ldap_entry):
|
def test_services(paheko_entry, ldap_entry):
|
||||||
# Vérifie que les services orga activés sont bien désactivés sur le mutu. Juste nextcloud pour l'instant.
|
# Vérifie que les services orga activés sont bien désactivés sur le mutu. Juste nextcloud pour l'instant.
|
||||||
@@ -137,7 +142,9 @@ with Ldap() as ldap:
|
|||||||
# servers_locations.append(f"{membre['email']} - {membre['nom_orga']}, pas trouvé sur {membre['serveur_prod']}")
|
# servers_locations.append(f"{membre['email']} - {membre['nom_orga']}, pas trouvé sur {membre['serveur_prod']}")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
not_in_ldap.append(f"{membre['email']} / id : {membre['id']}")
|
ldap_entry = ldap.get_mail_forwarding(membre["email"])
|
||||||
|
if not ldap_entry:
|
||||||
|
not_in_ldap.append(f"{membre['email']} / id : {membre['id']}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(membre)
|
print(membre)
|
||||||
print(ldap.get_email(membre["email"]))
|
print(ldap.get_email(membre["email"]))
|
||||||
@@ -153,6 +160,16 @@ with Ldap() as ldap:
|
|||||||
else:
|
else:
|
||||||
not_in_paheko.append(ldap_user["mail"][0].decode())
|
not_in_paheko.append(ldap_user["mail"][0].decode())
|
||||||
|
|
||||||
|
ldap_forwardings = ldap.get_mail_forwardings()
|
||||||
|
for ldap_user in ldap_forwardings:
|
||||||
|
ldap_user = ldap_user[1]
|
||||||
|
paheko_entry = [x for x in membres if x["email"] == ldap_user["mail"][0].decode() or (x["emails_rattaches"] and ldap_user["mail"][0].decode() in x["emails_rattaches"])]
|
||||||
|
paheko_entry = paheko_entry[0] if len(paheko_entry) else None
|
||||||
|
if paheko_entry:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
not_in_paheko.append(ldap_user["mail"][0].decode() + " (forwarding)")
|
||||||
|
|
||||||
|
|
||||||
print("Mails dans paheko mais pas dans le LDAP :")
|
print("Mails dans paheko mais pas dans le LDAP :")
|
||||||
print("\n".join(not_in_ldap))
|
print("\n".join(not_in_ldap))
|
||||||
|
|||||||
@@ -43,6 +43,25 @@ class Ldap:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_mail_forwarding(self, email):
|
||||||
|
"""
|
||||||
|
Renvoie le mail forwarding
|
||||||
|
"""
|
||||||
|
# Créer une chaîne de filtre pour rechercher dans les champs "cn" et "mailAlias"
|
||||||
|
filter_str = "(|(cn={})(mailAlias={}))".format(email, email)
|
||||||
|
result = self.ldap_connection.search_s("ou=mailForwardings,{}".format(self.ldap_root), ldap.SCOPE_SUBTREE, filter_str)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_mail_forwardings(self):
|
||||||
|
"""
|
||||||
|
Renvoie tous les mail forwardings.
|
||||||
|
"""
|
||||||
|
# Créer une chaîne de filtre pour rechercher dans les champs "cn" et "mailAlias"
|
||||||
|
result = self.ldap_connection.search_s("ou=mailForwardings,{}".format(self.ldap_root), ldap.SCOPE_ONELEVEL)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def delete_user(self, email):
|
def delete_user(self, email):
|
||||||
"""
|
"""
|
||||||
Supprimer un utilisateur du LDAP par son adresse e-mail
|
Supprimer un utilisateur du LDAP par son adresse e-mail
|
||||||
|
|||||||
Reference in New Issue
Block a user