21 lines
743 B
Python
21 lines
743 B
Python
def valid_base_dn(base_dn: str) -> None:
|
|
for att in ['o', 'dc', 'ou']:
|
|
if base_dn.startswith(att + '='):
|
|
break
|
|
else:
|
|
raise ValueError('La racine doit débuter par une organisation (o=), une composante du domaine (dc=) ou une unité organisationnelle (ou=)')
|
|
|
|
|
|
def calc_ldapclient_base_dn(ldap_base_dn: str,
|
|
family_name: str,
|
|
accounts: bool=False,
|
|
) -> str:
|
|
base = f'ou=accounts,{ldap_base_dn}'
|
|
if accounts:
|
|
return base
|
|
if not family_name:
|
|
return f'ou=users,{base}'
|
|
families = f'ou=families,{base}'
|
|
if family_name != '-':
|
|
return f'ou={family_name},{families}'
|
|
return families
|