4658: Missing python-ldap throws error 500

Misery

What version are you running?

3.0.3

What's the URL of the page containing the problem?

http://localhost/account/login/

What steps will reproduce the problem?

  1. Configure ldap in admin settings
  2. Do not install python-ldap package
  3. Try to login

What is the expected output? What do you see instead?

Expected: No login and a warning for the user. Also a logging of existing warning in line 607.

 if ldap is None:
        logging.error('Attempted to look up user "%s" in LDAP, but the '
                      'python-ldap package is not installed!',
                      username)
        return None

See: Error 500 and following stacktrace.

What operating system are you using? What browser?

Linux, Firefox

Please provide any additional information below.

2018-03-01 07:17:26,393 - ERROR - None - AnonymousUser - /account/login/ - djblets.log.middleware - Exception thrown for user AnonymousUser at http://localhost/account/login/

'NoneType' object has no attribute 'initialize'
Traceback (most recent call last):
File "/var/www/dist/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, callback_args, callback_kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/views/decorators/debug.py", line 75, in sensitive_post_parameters_wrapper
return view(request, *args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request,
args, kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/views/decorators/cache.py", line 52, in _wrapped_view_func
response = view_func(request, *args,
kwargs)
File "/var/www/dist/lib/python2.7/site-packages/django/contrib/auth/views.py", line 36, in login
if form.is_valid():
File "/var/www/dist/lib/python2.7/site-packages/django/forms/forms.py", line 129, in is_valid
return self.is_bound and not bool(self.errors)
File "/var/www/dist/lib/python2.7/site-packages/django/forms/forms.py", line 121, in errors
self.full_clean()
File "/var/www/dist/lib/python2.7/site-packages/django/forms/forms.py", line 274, in full_clean
self._clean_form()
File "/var/www/dist/lib/python2.7/site-packages/django/forms/forms.py", line 300, in _clean_form
self.cleaned_data = self.clean()
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/forms/auth.py", line 502, in clean
self.cleaned_data = super(AuthenticationForm, self).clean()
File "/var/www/dist/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 189, in clean
password=password)
File "/var/www/dist/lib/python2.7/site-packages/django/contrib/auth/init.py", line 49, in authenticate
user = backend.authenticate(**credentials)
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/backends.py", line 989, in authenticate
for con in connections:
File "/var/www/dist/lib/python2.7/site-packages/reviewboard/accounts/backends.py", line 931, in get_ldap_connections
con = ldap.initialize(ldap_uri)
AttributeError: 'NoneType' object has no attribute 'initialize'

Misery
#1 Misery

Using "Active Directory" settings.

Misery
#2 Misery

Fixed in aac2336ef4b0385d31b9720b2367526bf3697cdd with 3.0.4

david
#3 david
  • -New
    +Fixed