67 lines
2.2 KiB
Python
Executable File
67 lines
2.2 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import sys
|
|
|
|
from lib.paheko import Paheko
|
|
from lib.ldap import Ldap
|
|
|
|
paheko = Paheko()
|
|
categorie_membres = paheko.get_categorie_id("Membres")
|
|
membres = paheko.get_users_in_categorie(categorie_membres)
|
|
|
|
def test_quota(paheko_entry, ldap_entry):
|
|
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
|
|
|
|
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]
|
|
else:
|
|
return False
|
|
except e:
|
|
print(paheko_entry)
|
|
print(ldap_entry)
|
|
raise e
|
|
|
|
with Ldap() as ldap:
|
|
try:
|
|
not_in_ldap = []
|
|
mail_secours = []
|
|
quota = []
|
|
for membre in membres:
|
|
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()}")
|
|
|
|
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()}")
|
|
|
|
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
|
|
|
|
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))
|