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, ) -> str: if not family_name: return f'ou=users,{ldap_base_dn}' return f'ou={family_name},ou=families,{ldap_base_dn}'