From 38d3345cc0765b5772ceb3f7a01c996b852b9280 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Thu, 25 Aug 2016 22:55:16 +0200
Subject: [PATCH] Added user indication

---
 server.py           | 15 ++++++++++++++-
 templates/base.html |  1 +
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/server.py b/server.py
index 53c9f27..bb33564 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 5133bca..98a28c2 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 %}
-- 
GitLab