diff --git a/server.py b/server.py
index 5875c855411b92489bd268d0ec71918c7bc535f1..4fb51b255706d57c63849eea562a3a24609f6887 100755
--- a/server.py
+++ b/server.py
@@ -1,9 +1,7 @@
 #!/bin/python
 from flask import Flask, render_template, g, request, url_for, redirect, session
-import mysql.connector
 import sqlite3
 import os
-#import ldap3
 import re
 
 app = Flask(__name__)
@@ -43,6 +41,7 @@ def dict_factory(cursor, row):
 
 def query(operation, *params):
 	if config['DB_ENGINE'] == 'mysql':
+		import mysql.connector
 		if 'db' not in g or not g.db.is_connected():
 			g.db = mysql.connector.connect(user=config['MYSQL_USER'], password=config['MYSQL_PASSWD'], host=config['MYSQL_HOST'], database=config['MYSQL_DB'])
 		cur = g.db.cursor(dictionary=True)
@@ -78,6 +77,7 @@ def ldapauth(user, password):
 	notldap = {'videoag':('videoag', ['users','videoag']), 'gustav':('passwort', ['users'])}
 	user = LDAP_USERRE.sub(r'', user.lower())
 	if 'LDAP_HOST' in config:
+		import ldap3
 		try:
 			conn = ldap3.Connection(config['LDAP_HOST'], 'uid=%s,ou=users,dc=fsmpi,dc=rwth-aachen,dc=de'%user, password, auto_bind=True)
 			if conn.search("ou=groups,dc=fsmpi,dc=rwth-aachen,dc=de", "(&(cn=*)(memberUid=%s))"%user, attributes=['cn']):
@@ -90,6 +90,20 @@ 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:
+		import ldap3
+		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('''
@@ -153,5 +167,23 @@ def course():
 	else:
 		return redirect(url_for('index'))
 
+@app.route('/login', methods=['POST'])
+def login():
+	user, groups = ldapauth(request.form.get('user'), request.form.get('password'))
+	if user and 'users' in groups:
+		session['user'] = ldapget(user)
+	if 'ref' in request.values:
+		return redirect(request.values['ref'])
+	else:
+		return redirect(url_for('index'))
+
+@app.route('/logout')
+def logout():
+	session.pop('user')
+	if 'ref' in request.values:
+		return redirect(request.values['ref'])
+	else:
+		return redirect(url_for('index'))
+
 if __name__ == '__main__':
 	app.run()
diff --git a/templates/base.html b/templates/base.html
index 9be47c547abcfec1b99e2707f897cb18709a31d7..20fc5e05aabd4ba386b6e01e3b146e17d6363788 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -56,7 +56,7 @@
 									</li>
 									{% endfor %}
 									<li class="navbar-right">
-										{% if not session.userid is defined %}
+										{% if not session.user is defined %}
 										<a id="loginpopover" data-container="body" data-toggle="popover" data-placement="bottom"> 
 											<span class="glyphicon glyphicon-log-in"></span>
 										</a>
@@ -70,7 +70,8 @@
 											)
 										</script>
 										{% else %}
-										<a herf="/logout">
+										<a href="/logout?ref={{ request.url|urlencode }}">
+											{{ session.user.givenName }}
 											<span class="glyphicon glyphicon-log-out"></span>
 										</a>
 										{% endif %}