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 %}