Changeset - 1ec67ddcaffe
[Not reviewed]
beta
0 2 0
Mads Kiilerich - 13 years ago 2013-03-28 01:15:56
madski@unity3d.com
ldap: handle more elegantly that python-ldap isn't installed when trying to use ldap

Don't fail with
AttributeError: 'NoneType' object has no attribute 'SCOPE_SUBTREE'
in the log.
2 files changed with 8 insertions and 4 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/auth.py
Show inline comments
 
@@ -40,7 +40,8 @@ from rhodecode import __platform__, is_w
 
from rhodecode.model.meta import Session
 

	
 
from rhodecode.lib.utils2 import str2bool, safe_unicode
 
from rhodecode.lib.exceptions import LdapPasswordError, LdapUsernameError
 
from rhodecode.lib.exceptions import LdapPasswordError, LdapUsernameError,\
 
    LdapImportError
 
from rhodecode.lib.utils import get_repo_slug, get_repos_group_slug
 
from rhodecode.lib.auth_ldap import AuthLdap
 

	
 
@@ -241,7 +242,7 @@ def authenticate(username, password):
 

	
 
                Session().commit()
 
                return True
 
            except (LdapUsernameError, LdapPasswordError,):
 
            except (LdapUsernameError, LdapPasswordError, LdapImportError):
 
                pass
 
            except (Exception,):
 
                log.error(traceback.format_exc())
rhodecode/lib/auth_ldap.py
Show inline comments
 
@@ -26,7 +26,7 @@
 
import logging
 

	
 
from rhodecode.lib.exceptions import LdapConnectionError, LdapUsernameError, \
 
    LdapPasswordError
 
    LdapPasswordError, LdapImportError
 
from rhodecode.lib.utils2 import safe_str
 

	
 
log = logging.getLogger(__name__)
 
@@ -36,7 +36,7 @@ try:
 
    import ldap
 
except ImportError:
 
    # means that python-ldap is not installed
 
    pass
 
    ldap = None
 

	
 

	
 
class AuthLdap(object):
 
@@ -45,6 +45,9 @@ class AuthLdap(object):
 
                 tls_kind='PLAIN', tls_reqcert='DEMAND', ldap_version=3,
 
                 ldap_filter='(&(objectClass=user)(!(objectClass=computer)))',
 
                 search_scope='SUBTREE', attr_login='uid'):
 
        if ldap is None:
 
            raise LdapImportError
 

	
 
        self.ldap_version = ldap_version
 
        ldap_server_type = 'ldap'
 

	
0 comments (0 inline, 0 general)