From d3b0d0f597e0f84246dd755c6de3f29770134b44 Mon Sep 17 00:00:00 2001 From: jordan Date: Sat, 17 Dec 2011 14:25:15 +0000 Subject: [PATCH] fix openid login callback, change the forward URL after authentication if there are some additional GET parameters in it (change ? to & to concatenate properly) git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@1215 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/views/auth.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/forum/views/auth.py b/forum/views/auth.py index bac7639..92aa894 100644 --- a/forum/views/auth.py +++ b/forum/views/auth.py @@ -3,6 +3,7 @@ import datetime import logging import urllib +from urlparse import urlparse from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext @@ -407,7 +408,16 @@ def login_and_forward(request, user, forward=None, message=None): return manage_pending_data(request, _('save'), forward) additional_get_params = urllib.urlencode(request.GET) - return HttpResponseRedirect(forward + "?%s" % additional_get_params) + + parsed_forward = urlparse(forward) + + # If there is already some parsed query in the URL then change the forward URL + if parsed_forward.query: + forward_url = forward + "&%s" % additional_get_params + else: + forward_url = forward + "?%s" % additional_get_params + + return HttpResponseRedirect(forward_url) def forward_suspended_user(request, user, show_private_msg=True): message = _("Sorry, but this account is suspended") -- 2.45.1