From b82d8205c38bd8196d6daba469774f65f159082c Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Wed, 15 Aug 2012 09:26:35 -0700 Subject: [PATCH] improve redirect after logout --- edbob/pyramid/views/auth.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/edbob/pyramid/views/auth.py b/edbob/pyramid/views/auth.py index 11636e5..f80a4da 100644 --- a/edbob/pyramid/views/auth.py +++ b/edbob/pyramid/views/auth.py @@ -96,7 +96,17 @@ def logout(context, request): request.session.delete() request.session.invalidate() headers = forget(request) - return HTTPFound(location=request.route_url('login'), headers=headers) + + if request.params.get('referer'): + referer = request.params['referer'] + elif request.session.get('referer'): + referer = request.session.pop('referer') + else: + referer = request.referer + if not referer or referer == request.route_url('logout'): + referer = request.route_url('login') + + return HTTPFound(location=referer, headers=headers) def includeme(config):