diff --git a/db.py b/db.py index cb6c2a720c0e897d87c67f0e60f0741938bd5e5b..53523bde8f7512ed8b0761f1eb32dc202c06819e 100644 --- a/db.py +++ b/db.py @@ -152,13 +152,12 @@ if 'LDAP_HOST' in config: def ldapauth(user, password): user = LDAP_USERRE.sub(r'', user.lower()) try: - conn = ldap3.Connection(ldap3.Server(config['LDAP_HOST'], port=config['LDAP_PORT'], use_ssl=True), 'fsmpi\\%s'%user, password, auto_bind=True) + conn = ldap3.Connection(ldap3.Server(config['LDAP_HOST'], port=config['LDAP_PORT'], use_ssl=True), 'fsmpi\\%s'%user, password, auto_bind=True, check_names=False) except ldap3.core.exceptions.LDAPBindError: return {}, [] conn.search("cn=users,dc=fsmpi,dc=rwth-aachen,dc=de", "(cn=%s)"%user, attributes=['memberOf', 'givenName', 'sn']) - info = dict(conn.response[0]['attributes']) - info['uid'] = user - groups = [g.split(',')[0].split('=')[-1] for g in info['memberOf']] + info = {'uid': user, 'givenName': conn.response[0]['attributes']['givenName'][0], 'sn': conn.response[0]['attributes']['sn'][0]} + groups = [g.split(',')[0].split('=')[-1] for g in conn.response[0]['attributes']['memberOf']] conn.unbind() return info, groups