diff options
author | Aamir Khan <syst3m.w0rm@gmail.com> | 2012-06-28 18:53:12 -0400 |
---|---|---|
committer | Aamir Khan <syst3m.w0rm@gmail.com> | 2012-06-28 18:53:12 -0400 |
commit | 7fdcb2682af36aa9beb1e657b1d44682c7235f1a (patch) | |
tree | 6b0e4c2477eccc6f1883e84871f6b826e3e1dcb5 /views/accounts.py | |
parent | 2bc6472446426abd97d0b01f02d0318e7d828d50 (diff) | |
download | hyperkitty-7fdcb2682af36aa9beb1e657b1d44682c7235f1a.tar.gz hyperkitty-7fdcb2682af36aa9beb1e657b1d44682c7235f1a.tar.xz hyperkitty-7fdcb2682af36aa9beb1e657b1d44682c7235f1a.zip |
Fix #2: After login user will be directed back to previous page
Diffstat (limited to 'views/accounts.py')
-rw-r--r-- | views/accounts.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/views/accounts.py b/views/accounts.py index 7c6948d..1eeb8c9 100644 --- a/views/accounts.py +++ b/views/accounts.py @@ -16,6 +16,7 @@ from django.shortcuts import render_to_response, redirect from django.template import Context, loader, RequestContext from django.utils.translation import gettext as _ from urllib2 import HTTPError +from urlparse import urlparse from gsoc.utils import log @@ -24,18 +25,26 @@ def user_logout(request): return redirect('user_login') def user_login(request,template = 'login.html'): + + parse_r = urlparse(request.META.get('HTTP_REFERER', 'index')) + previous = '%s%s' % (parse_r.path, parse_r.query) + + next_var = request.POST.get('next', request.GET.get('next', previous)) + if request.method == 'POST': form = AuthenticationForm(request.POST) user = authenticate(username=request.POST.get('username'), password=request.POST.get('password')) - if user is not None: + + if user is not None: log('debug', user) if user.is_active: login(request,user) - return redirect(request.GET.get('next', 'index')) + return redirect(next_var) + else: form = AuthenticationForm() - return render_to_response(template, {'form': form,}, + return render_to_response(template, {'form': form, 'next' : next_var}, context_instance=RequestContext(request)) @login_required |