diff --git a/lc_ldap.py b/lc_ldap.py index dbf10d9..0ed2844 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -135,8 +135,19 @@ def lc_ldap_self(): """Binding LDAP en lecture seule sur la base locale. L'idée est que les machines avec un réplica bossent avec elles-mêmes pour la lecture, pas avec vert.""" - secrets = import_secrets() - return lc_ldap(uri='ldap://127.0.0.1', dn=secrets.ldap_readonly_auth_dn, cred=secrets.ldap_readonly_password) + if os.path.exists('/var/run//slapd/ldapi'): + ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/' + auth_dn = auth_pw = "" + elif os.path.exists('/var/run/ldapi'): + ro_uri = 'ldapi://%2fvar%2frun%2fldapi/' + auth_dn = auth_pw = "" + else: + secrets = import_secrets() + ro_uri = 'ldap://127.0.0.1' + auth_dn = secrets.ldap_readonly_auth_dn + auth_pw = secrets.ldap_readonly_password + + return lc_ldap(uri=ro_uri, dn=auth_dn, cred=auth_pw) class lc_ldap(ldap.ldapobject.LDAPObject): """Connexion à la base ldap crans, chaque instance représente une connexion