Possibilit de connexion en lecture seule via la socket.

darcs-hash:20051123220522-41617-09b8f9c2ff2f77eb570a3d57b0e2e373c819e355.gz
This commit is contained in:
pauget 2005-11-23 23:05:22 +01:00
parent 30e8237c9a
commit 394b4773b5

View file

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