diff --git a/browser/common.py b/browser/common.py
index cf3f902..faa27e3 100644
--- a/browser/common.py
+++ b/browser/common.py
@@ -632,15 +632,17 @@ class LoggedIn(object):
error=_(u'Try again later.'))
def __call__(self):
- form = self.request.form
- camefrom = form.get('camefrom').strip('?')
+ #form = self.request.form
+ #camefrom = form.get('camefrom').strip('?')
code = 'success'
if IUnauthenticatedPrincipal.providedBy(self.request.principal):
code = 'nosuccess'
- info = form.get('message')
+ info = self.request.form.get('message')
if info == 'error' and code == 'nosuccess':
code = 'error'
message = self.messages[code]
+ return self.request.response.redirect(self.nextUrl(message, code))
+
params = []
url = camefrom or self.request.URL[-1]
if '?' in url:
@@ -648,7 +650,16 @@ class LoggedIn(object):
params = parse_qsl(qs)
params.append(('loops.messages.top:record', message))
self.request.response.redirect('%s?%s' % (url, urlencode(params)))
-
+
+ def nextUrl(self, message, code):
+ camefrom = self.request.form.get('camefrom').strip('?')
+ url = camefrom or self.request.URL[-1]
+ params = []
+ if '?' in url:
+ base, qs = url.split('?', 1)
+ params = parse_qsl(qs)
+ params.append(('loops.messages.top:record', message))
+ return '%s?%s' % (url, urlencode(params))
# vocabulary stuff
diff --git a/browser/configure.zcml b/browser/configure.zcml
index 1da55ef..062f846 100644
--- a/browser/configure.zcml
+++ b/browser/configure.zcml
@@ -30,13 +30,6 @@
permission="zope.Public"
/>
-
-