diff --git a/server.py b/server.py
index 816cca7d152d91d74f231abe18efdc7f31a79fa6..53c9f27cdd375d5226ba4d53b99854c28182b67c 100755
--- a/server.py
+++ b/server.py
@@ -155,9 +155,20 @@ def course():
 @app.route('/login', methods=['POST'])
 def login():
 	user, groups = ldapauth(request.form.get('user'), request.form.get('password'))
-	if user and 'user' in groups:
-		session.user = user
-	return redirect(request.form.get('ref'))
+	if user and 'users' in groups:
+		session['user'] = 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 2c1cfb91e112c3a693a6a9b9e376476d81f0ec21..5133bcabda94a28062785f453b050020cb22de67 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,7 @@
 											)
 										</script>
 										{% else %}
-										<a herf="/logout">
+										<a href="/logout?ref={{ request.url|urlencode }}">
 											<span class="glyphicon glyphicon-log-out"></span>
 										</a>
 										{% endif %}