diff --git a/server.py b/server.py index 53c9f27cdd375d5226ba4d53b99854c28182b67c..bb33564e9a05fe1b620c156a49dc458b4eac1870 100755 --- a/server.py +++ b/server.py @@ -90,6 +90,19 @@ def ldapauth(user, password): return user, notldap[user][1] return None, [] +def ldapget(user): + notldap = {'videoag': {'uid': 'videoag', 'givenName': 'Video', 'sn': 'Geier'}, + 'gustav': {'uid': 'gustav', 'givenName': 'Gustav', 'sn': 'Geier'}} + user = LDAP_USERRE.sub(r'', user.lower()) + if 'LDAP_HOST' in config: + conn = ldap3.Connection('ldaps://rumo.fsmpi.rwth-aachen.de', auto_bind=True) + conn.search("ou=users,dc=fsmpi,dc=rwth-aachen,dc=de", "(uid=%s)"%user, + attributes=ldap3.ALL_ATTRIBUTES) + e = conn.entries[0] + return {'uid': user, 'givenName': e.givenName.value, 'sn':e.sn.value} + else: + return notldap[user] + @app.route('/') def index(): return render_template('index.html', latestvideos=query(''' @@ -156,7 +169,7 @@ def course(): def login(): user, groups = ldapauth(request.form.get('user'), request.form.get('password')) if user and 'users' in groups: - session['user'] = user + session['user'] = ldapget(user) if 'ref' in request.values: return redirect(request.values['ref']) else: diff --git a/templates/base.html b/templates/base.html index 5133bcabda94a28062785f453b050020cb22de67..98a28c27d06367b17db9048f0ba104e437ddcfdd 100644 --- a/templates/base.html +++ b/templates/base.html @@ -71,6 +71,7 @@ </script> {% else %} <a href="/logout?ref={{ request.url|urlencode }}"> + {{ session.user.givenName }} <span class="glyphicon glyphicon-log-out"></span> </a> {% endif %}