pahekoldap
This commit is contained in:
@@ -64,13 +64,28 @@ def test_mail_secours(paheko_entry, ldap_entry):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def test_mails_orga(paheko_entry):
|
||||||
|
# Vérifie que les mails des orgas sont bien dans le LDAP.
|
||||||
|
is_orga = paheko_entry["admin_orga"].strip("'") == "Oui"
|
||||||
|
res = []
|
||||||
|
if is_orga:
|
||||||
|
linked_emails = paheko_entry["emails_rattaches"]
|
||||||
|
if linked_emails:
|
||||||
|
for linked_email in linked_emails.splitlines():
|
||||||
|
ldap_linked_entry = ldap.get_email(linked_email)
|
||||||
|
if not ldap_linked_entry:
|
||||||
|
res.append(linked_email)
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
with Ldap() as ldap:
|
with Ldap() as ldap:
|
||||||
try:
|
try:
|
||||||
not_in_ldap = []
|
not_in_ldap = []
|
||||||
|
not_in_paheko = []
|
||||||
mail_secours = []
|
mail_secours = []
|
||||||
quota = []
|
quota = []
|
||||||
services = []
|
services = []
|
||||||
|
mails_orgas = []
|
||||||
for membre in membres:
|
for membre in membres:
|
||||||
ldap_entry = ldap.get_email(membre["email"])
|
ldap_entry = ldap.get_email(membre["email"])
|
||||||
if ldap_entry:
|
if ldap_entry:
|
||||||
@@ -88,6 +103,11 @@ with Ldap() as ldap:
|
|||||||
suffix = " rattachés\n " + "\n ".join(membre['emails_rattaches'].splitlines())
|
suffix = " rattachés\n " + "\n ".join(membre['emails_rattaches'].splitlines())
|
||||||
quota.append(f"{membre['email']}: Paheko {membre['quota_disque']}, LDAP mail {ldap_entry[1]['mailQuota'][0].decode()} cloud {ldap_entry[1]['nextcloudQuota'][0].decode()} quotaGlobal {ldap_entry[1]['quota'][0].decode()}{suffix}")
|
quota.append(f"{membre['email']}: Paheko {membre['quota_disque']}, LDAP mail {ldap_entry[1]['mailQuota'][0].decode()} cloud {ldap_entry[1]['nextcloudQuota'][0].decode()} quotaGlobal {ldap_entry[1]['quota'][0].decode()}{suffix}")
|
||||||
|
|
||||||
|
mails_orga = test_mails_orga(membre)
|
||||||
|
if mails_orga:
|
||||||
|
suffix = '\n '.join(mails_orga)
|
||||||
|
mails_orgas.append(f"{membre['email']}:\n {suffix}")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
not_in_ldap.append(f"{membre['email']} / id : {membre['id']}")
|
not_in_ldap.append(f"{membre['email']} / id : {membre['id']}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -95,9 +115,24 @@ with Ldap() as ldap:
|
|||||||
print(ldap.get_email(membre["email"]))
|
print(ldap.get_email(membre["email"]))
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
ldap_users = ldap.get_users()
|
||||||
|
for ldap_user in ldap_users:
|
||||||
|
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())
|
||||||
|
|
||||||
|
|
||||||
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))
|
||||||
|
|
||||||
|
print("Mails dans lda LDAP mais pas dans paheko :")
|
||||||
|
print("\n".join(not_in_paheko))
|
||||||
|
|
||||||
|
|
||||||
print("\nMails de secours pas ok dans le LDAP :")
|
print("\nMails de secours pas ok dans le LDAP :")
|
||||||
print("\n".join(mail_secours))
|
print("\n".join(mail_secours))
|
||||||
|
|
||||||
@@ -106,3 +141,7 @@ print("\n".join(services))
|
|||||||
|
|
||||||
print("\nQuotas pas ok dans le LDAP :")
|
print("\nQuotas pas ok dans le LDAP :")
|
||||||
print("\n".join(quota))
|
print("\n".join(quota))
|
||||||
|
|
||||||
|
print("\nMails d'orga dans paheko mais manquant dans le LDAP :")
|
||||||
|
print("\n".join(mails_orgas))
|
||||||
|
|
||||||
|
@@ -34,6 +34,15 @@ class Ldap:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_users(self):
|
||||||
|
"""
|
||||||
|
Renvoie tous les utilisateurs.
|
||||||
|
"""
|
||||||
|
# Créer une chaîne de filtre pour rechercher dans les champs "cn" et "mailAlias"
|
||||||
|
result = self.ldap_connection.search_s("ou=users,{}".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