diff --git a/bin/checkPahekoLdap.py b/bin/checkPahekoLdap.py index 57f4fea..f0dc9fc 100755 --- a/bin/checkPahekoLdap.py +++ b/bin/checkPahekoLdap.py @@ -10,17 +10,23 @@ categorie_membres = paheko.get_categorie_id("Membres") membres = paheko.get_users_in_categorie(categorie_membres) def test_quota(paheko_entry, ldap_entry): - ok = True - quota_disque = paheko_entry["quota_disque"].strip("'") - if f"{quota_disque}G".encode() != ldap_entry[1]['mailQuota'][0]: - ok = False + quota_disque = int(paheko_entry["quota_disque"].strip("'")) + quota_cloud = int(ldap_entry[1]['nextcloudQuota'][0][:-3]) + quota_mail = int(ldap_entry[1]['mailQuota'][0][:-1]) + # if f"{quota_disque}G".encode() == ldap_entry[1]['mailQuota'][0]: + # ok = True - return ok + if quota_disque == quota_cloud and quota_disque == quota_mail: + return True + elif quota_disque == quota_cloud + quota_mail: + return True + else: + return False def test_mail_secours(paheko_entry, ldap_entry): try: if paheko_entry["email_secours"]: - return paheko_entry["email_secours"].strip("'").encode() == ldap_entry[1]['mailDeSecours'][0] + return paheko_entry["email_secours"].strip("'").encode()== ldap_entry[1]['mailDeSecours'][0] else: return False except e: @@ -30,19 +36,31 @@ def test_mail_secours(paheko_entry, ldap_entry): with Ldap() as ldap: try: + not_in_ldap = [] + mail_secours = [] + quota = [] for membre in membres: - ldap_entry = ldap.get_email(membre["email"])[0] + ldap_entry = ldap.get_email(membre["email"]) + if ldap_entry: + ldap_entry = ldap_entry[0] + if not test_mail_secours(membre, ldap_entry): + mail_secours.append(f"{membre['email']}: Paheko {membre['email_secours']}, LDAP {ldap_entry[1]['mailDeSecours'][0].decode()}") - ok = True + if not test_quota(membre, ldap_entry): + quota.append(f"{membre['email']}: Paheko {membre['quota_disque']}, LDAP mail {ldap_entry[1]['mailQuota'][0].decode()} cloud {ldap_entry[1]['nextcloudQuota'][0].decode()}") - #ok &= test_quota(membre, ldap_entry) - ok &= test_mail_secours(membre, ldap_entry) - - if not ok: - print(membre) - print(ldap_entry) - print() + else: + not_in_ldap.append(f"{membre['email']} / id : {membre['id']}") except Exception as e: print(membre) print(ldap.get_email(membre["email"])) - raise e \ No newline at end of file + raise e + +print("Mails dans paheko mais pas dans le LDAP :") +print("\n".join(not_in_ldap)) + +print("\nMails de secours pas ok dans le LDAP :") +print("\n".join(mail_secours)) + +print("\nQuotas pas ok dans le LDAP :") +print("\n".join(quota))