# HG changeset patch # User raph # Date 1279205731 -7200 # Node ID 1070d52adc1175d6cf00c27f9edbd0e77b3da755 # Parent 730dd9fb2c770a8409aae61a3f221d7e11491925 propagates query string parameters when login in (so that link with direct coment id are properly propagated) diff -r 730dd9fb2c77 -r 1070d52adc11 src/cm/middleware.py --- a/src/cm/middleware.py Thu Jul 15 16:54:29 2010 +0200 +++ b/src/cm/middleware.py Thu Jul 15 16:55:31 2010 +0200 @@ -2,6 +2,7 @@ from django.conf import settings from django.http import HttpResponseServerError,HttpResponseRedirect from django.core.urlresolvers import reverse +from urllib import urlencode class CmMiddleware(object): @@ -11,7 +12,8 @@ traceback.print_exc() if type(exception) == UnauthorizedException: if request.user.is_anonymous(): - login_url = reverse('login') + '?next=%s' %request.META['PATH_INFO'] + query = urlencode({'next': request.META['PATH_INFO'], 'q' : request.META['QUERY_STRING'] }) + login_url = reverse('login') + '?' + query return HttpResponseRedirect(login_url) else: redirect_url = reverse('unauthorized') diff -r 730dd9fb2c77 -r 1070d52adc11 src/cm/templates/site/login_form.html --- a/src/cm/templates/site/login_form.html Thu Jul 15 16:54:29 2010 +0200 +++ b/src/cm/templates/site/login_form.html Thu Jul 15 16:55:31 2010 +0200 @@ -27,6 +27,9 @@ {% if request.GET.next %} {% endif %} +{% if request.GET.q %} + +{% endif %} diff -r 730dd9fb2c77 -r 1070d52adc11 src/cm/views/user.py --- a/src/cm/views/user.py Thu Jul 15 16:54:29 2010 +0200 +++ b/src/cm/views/user.py Thu Jul 15 16:55:31 2010 +0200 @@ -544,8 +544,12 @@ display_message(request, _(u"You're logged in!")) next = request.POST.get('next', None) + q = request.POST.get('q', None) if next and next.startswith('/'): - return HttpResponseRedirect(next) + if q: + return HttpResponseRedirect(next + '?' + q) + else: + return HttpResponseRedirect(next) else: return HttpResponseRedirect(reverse('index'))