separate method for getting redirect URL
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3409 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
bf17130374
commit
58b965dfe6
2 changed files with 15 additions and 11 deletions
|
@ -632,15 +632,17 @@ class LoggedIn(object):
|
||||||
error=_(u'Try again later.'))
|
error=_(u'Try again later.'))
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
form = self.request.form
|
#form = self.request.form
|
||||||
camefrom = form.get('camefrom').strip('?')
|
#camefrom = form.get('camefrom').strip('?')
|
||||||
code = 'success'
|
code = 'success'
|
||||||
if IUnauthenticatedPrincipal.providedBy(self.request.principal):
|
if IUnauthenticatedPrincipal.providedBy(self.request.principal):
|
||||||
code = 'nosuccess'
|
code = 'nosuccess'
|
||||||
info = form.get('message')
|
info = self.request.form.get('message')
|
||||||
if info == 'error' and code == 'nosuccess':
|
if info == 'error' and code == 'nosuccess':
|
||||||
code = 'error'
|
code = 'error'
|
||||||
message = self.messages[code]
|
message = self.messages[code]
|
||||||
|
return self.request.response.redirect(self.nextUrl(message, code))
|
||||||
|
|
||||||
params = []
|
params = []
|
||||||
url = camefrom or self.request.URL[-1]
|
url = camefrom or self.request.URL[-1]
|
||||||
if '?' in url:
|
if '?' in url:
|
||||||
|
@ -648,7 +650,16 @@ class LoggedIn(object):
|
||||||
params = parse_qsl(qs)
|
params = parse_qsl(qs)
|
||||||
params.append(('loops.messages.top:record', message))
|
params.append(('loops.messages.top:record', message))
|
||||||
self.request.response.redirect('%s?%s' % (url, urlencode(params)))
|
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
|
# vocabulary stuff
|
||||||
|
|
||||||
|
|
|
@ -30,13 +30,6 @@
|
||||||
permission="zope.Public"
|
permission="zope.Public"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<page for="*"
|
|
||||||
name="logged_in.html"
|
|
||||||
class="loops.browser.common.LoggedIn"
|
|
||||||
attribute="__call__"
|
|
||||||
permission="zope.Public"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- macros -->
|
<!-- macros -->
|
||||||
|
|
||||||
<page
|
<page
|
||||||
|
|
Loading…
Add table
Reference in a new issue