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 | |
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
-rw-r--r-- | templates/login.html | 1 | ||||
-rw-r--r-- | views/accounts.py | 15 |
2 files changed, 13 insertions, 3 deletions
diff --git a/templates/login.html b/templates/login.html index fc5d8b3..a137c97 100644 --- a/templates/login.html +++ b/templates/login.html @@ -8,6 +8,7 @@ <form action="" method="post" class="login mm_clear"> {% csrf_token %} {{ form.as_p }} + <input type=hidden name=next value={{ next }}> <div class="field"> <button class="btn btn-primary" type="submit"> {% trans "Login" %} 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 |