improve logged-in view
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3402 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
a0e97d4082
commit
26100e8b50
1 changed files with 21 additions and 4 deletions
|
@ -23,6 +23,7 @@ $Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from cgi import parse_qs
|
from cgi import parse_qs
|
||||||
|
from urllib import urlencode
|
||||||
from zope import component
|
from zope import component
|
||||||
from zope.app.form.browser.interfaces import ITerms
|
from zope.app.form.browser.interfaces import ITerms
|
||||||
from zope.app.i18n.interfaces import ITranslationDomain
|
from zope.app.i18n.interfaces import ITranslationDomain
|
||||||
|
@ -626,11 +627,27 @@ class BaseView(GenericView, I18NView):
|
||||||
|
|
||||||
class LoggedIn(object):
|
class LoggedIn(object):
|
||||||
|
|
||||||
|
messages = dict(success=_(u'You have been logged in.'),
|
||||||
|
nosuccess=_(u'Login not successful.'),
|
||||||
|
error=_(u'Try again later.'))
|
||||||
|
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
camefrom = self.request.form.get('camefrom')
|
form = self.request.form
|
||||||
if camefrom:
|
camefrom = form.get('camefrom')
|
||||||
self.request.response.redirect(camefrom)
|
code = 'success'
|
||||||
self.request.response.redirect(self.request.URL[-1])
|
if IUnauthenticatedPrincipal.providedBy(self.request.principal):
|
||||||
|
code = 'nosuccess'
|
||||||
|
info = form.get('message')
|
||||||
|
if info == 'error' and code == 'nosuccess':
|
||||||
|
code = 'error'
|
||||||
|
message = self.messages[code]
|
||||||
|
params = {}
|
||||||
|
url = camefrom or self.request.URL[-1]
|
||||||
|
if '?' in url:
|
||||||
|
base, qs = url.split('?', 1)
|
||||||
|
params = parse_qs(qs)
|
||||||
|
params['loops.messages.top:record'] = message
|
||||||
|
self.request.response.redirect('%s?%s' % (url, urlencode(params)))
|
||||||
|
|
||||||
|
|
||||||
# vocabulary stuff
|
# vocabulary stuff
|
||||||
|
|
Loading…
Add table
Reference in a new issue