Review Board

beta

LDAP auth backend assumes things about how first and last names can be gathered.

Updated 6 months ago

Jordan Sissel Reviewers
reviewboard
None Review Board SVN
first_name and last_name are gathered (currently) by space-splitting the 'cn' field. This is correct unless you don't have spaces in your 'cn' field at which point user creation fails.

I have switched to using displayName, but this is not a permanent fix. I might recommend something similar to LDAP_UID_MASK, but it is not likely as simple.
I tested this on my server by logging in with an unregistered user using the LDAP backend. The user creation was successful.

Diff revision 1 (Latest)

  1. trunk/reviewboard/accounts/backends.py: 1 change [ 1 ]
trunk/reviewboard/accounts/backends.py
Revision 1373 New Change
84
                ldapo.simple_bind_s(settings.LDAP_ANON_BIND_UID, settings.LDAP_ANON_BIND_PASSWD)
84
                ldapo.simple_bind_s(settings.LDAP_ANON_BIND_UID, settings.LDAP_ANON_BIND_PASSWD)
85
85
86
                passwd = ldapo.search_s(settings.LDAP_UID_MASK % username,
86
                passwd = ldapo.search_s(settings.LDAP_UID_MASK % username,
87
                                        ldap.SCOPE_SUBTREE, "objectclass=*")
87
                                        ldap.SCOPE_SUBTREE, "objectclass=*")
88
88
89
                first_name, last_name = passwd[0][1]['cn'][0].split(' ', 1)
89
                first_name, last_name = passwd[0][1]['displayName'][0].split(' ', 1)
90
                email = u'%s@%s' % (username, settings.LDAP_EMAIL_DOMAIN)
90
                email = u'%s@%s' % (username, settings.LDAP_EMAIL_DOMAIN)
91
91
92
                user = User(username=username,
92
                user = User(username=username,
93
                            password='',
93
                            password='',
94
                            first_name=first_name,
94
                            first_name=first_name,
  1. trunk/reviewboard/accounts/backends.py: 1 change [ 1 ]