diff options
Diffstat (limited to 'pykolab')
-rw-r--r-- | pykolab/auth/__init__.py | 15 | ||||
-rw-r--r-- | pykolab/auth/ldap/__init__.py | 12 | ||||
-rw-r--r-- | pykolab/base.py | 5 |
3 files changed, 22 insertions, 10 deletions
diff --git a/pykolab/auth/__init__.py b/pykolab/auth/__init__.py index f4de1e1..b75f9c3 100644 --- a/pykolab/auth/__init__.py +++ b/pykolab/auth/__init__.py @@ -37,15 +37,10 @@ class Auth(pykolab.base.Base): """ Initialize the authentication class. """ - pykolab.base.Base.__init__(self) + pykolab.base.Base.__init__(self, domain=domain) self._auth = None - if not domain == None: - self.domain = domain - else: - self.domain = conf.get('kolab', 'primary_domain') - def authenticate(self, login): """ Verify login credentials supplied in login against the appropriate @@ -97,8 +92,12 @@ class Auth(pykolab.base.Base): return if domain == None: - section = 'kolab' - domain = conf.get('kolab', 'primary_domain') + if not self.domain == None: + section = self.domain + domain = self.domain + else: + section = 'kolab' + domain = conf.get('kolab', 'primary_domain') else: self.list_domains() section = domain diff --git a/pykolab/auth/ldap/__init__.py b/pykolab/auth/ldap/__init__.py index 6559ea0..a6a1044 100644 --- a/pykolab/auth/ldap/__init__.py +++ b/pykolab/auth/ldap/__init__.py @@ -868,8 +868,18 @@ class LDAP(pykolab.base.Base): else: override_search = False + config_base_dn = self.config_get('base_dn') + ldap_base_dn = self._kolab_domain_root_dn(self.domain) + + if not ldap_base_dn == None and not ldap_base_dn == config_base_dn: + base_dn = ldap_base_dn + else: + base_dn = config_base_dn + + log.debug(_("Synchronization is searching against base DN: %s") % (base_dn), level=8) + self._search( - self.config_get('base_dn'), + base_dn, filterstr=_filter, attrlist=[ '*', diff --git a/pykolab/base.py b/pykolab/base.py index b63ca2d..207783c 100644 --- a/pykolab/base.py +++ b/pykolab/base.py @@ -26,7 +26,10 @@ class Base(object): Abstraction class for functions commonly shared between auth, imap, etc. """ def __init__(self, *args, **kw): - self.domain = conf.get('kolab', 'primary_domain') + if kw.has_key('domain') and not kw['domain'] == None: + self.domain = kw['domain'] + else: + self.domain = conf.get('kolab', 'primary_domain') # Placeholder primary_domain => [secondary_domains]. Should be updated # on auth backend _connect(). |