From 58b965dfe67dc1ab401cae8ca412e46a81e674e0 Mon Sep 17 00:00:00 2001 From: werners Date: Tue, 2 Jun 2009 10:55:24 +0000 Subject: [PATCH] separate method for getting redirect URL git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3409 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/common.py | 19 +++++++++++++++---- browser/configure.zcml | 7 ------- 2 files changed, 15 insertions(+), 11 deletions(-) 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" /> - -