diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 3525166b..34502833 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -28,6 +28,8 @@ except: date_format='%d/%m/%Y %H:%M' hostname = gethostname().split(".")[0] + +# Uri pour lecture écriture if hostname == 'egon' and not '/usr/scripts/gestion/' in sys.argv[0]: # pour les tests, les séminaires... sur egon uri = 'ldapi://%2fvar%2frun%2fldapi/' @@ -36,6 +38,12 @@ if hostname == 'egon' and not '/usr/scripts/gestion/' in sys.argv[0]: else: uri = 'ldap://ldap.adm.crans.org/' +# Uri pour les instances de crans_ldap faisant de la lecture seule +if os.path.exists('/var/run/ldapi') : + ro_uri = 'ldapi://%2fvar%2frun%2fldapi/' +else : + ro_uri = uri + smtpserv = "rouge.crans.org" random.seed() # On initialise le générateur aléatoire @@ -217,8 +225,8 @@ class crans_ldap: # Scope des différentes recherches scope = { 'adherent': 1 , 'machine': 2 , 'club': 1 } - def __init__(self): - self.connect() + def __init__(self,readonly=False): + self.connect(readonly) def __del__(self): # Destruction des locks résiduels @@ -226,9 +234,14 @@ class crans_ldap: for lock in self._locks: self.remove_lock(lock) - def connect(self): + def connect(self,readonly=False): """ Initialisation la connexion vers le serveur LDAP """ - self.conn = ldap.initialize(uri) + if readonly : + self.conn = ldap.initialize(ro_uri) + return + + self.conn = ldap.initialize(uri) + while True : try: self.conn.bind_s(ldap_auth_dn,ldap_password,ldap.AUTH_SIMPLE)