From b72d61108f4c658a80811107421b68ac723b7646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Tue, 5 Mar 2013 17:10:09 +0100 Subject: [PATCH] =?UTF-8?q?[lc=5Fldap]=20On=20laisse=20lc=5Fldap=5Flocal?= =?UTF-8?q?=20dans=20l'=C3=A9tat=20initial,=20vu=20que=20maintenant=20j'ai?= =?UTF-8?q?=20r=C3=A9gl=C3=A9=20les=20probl=C3=A8mes=20de=20temps=20d'acc?= =?UTF-8?q?=C3=A8s=20aux=20imprimeurs=20club.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc_ldap.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/lc_ldap.py b/lc_ldap.py index 3860271..70098d0 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -385,12 +385,26 @@ class lc_ldap_admin(lc_ldap): class lc_ldap_local(lc_ldap): """Connexion 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.""" + avec elles-mêmes pour la lecture, pas avec vert. + + Attention, les accès internes en lecture seule + ou avec une socket ldapi semblent moins prioritaires + qu'avec cn=admin. Ne pas utiliser cette fonction + si vous souhaitez faire beaucoup de recherches + indépendantes (c'est le temps d'accès à la socket + qui est problématique)""" def __init__(self): - secrets = import_secrets() - ro_uri = 'ldap://127.0.0.1' - auth_dn = secrets.ldap_readonly_auth_dn - auth_pw = 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 super(lc_ldap_local, self).__init__(uri=ro_uri, dn=auth_dn, cred=auth_pw)