diff rhodecode/lib/auth_ldap.py @ 3632:1ec67ddcaffe beta

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.
author Mads Kiilerich <madski@unity3d.com>
date Thu, 28 Mar 2013 01:15:56 +0100
parents 8464d0e96e97
children 3563bb7b4b82
line wrap: on
line diff
--- a/rhodecode/lib/auth_ldap.py	Thu Mar 28 03:34:36 2013 +0100
+++ b/rhodecode/lib/auth_ldap.py	Thu Mar 28 01:15:56 2013 +0100
@@ -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 @@
     import ldap
 except ImportError:
     # means that python-ldap is not installed
-    pass
+    ldap = None
 
 
 class AuthLdap(object):
@@ -45,6 +45,9 @@
                  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'