some auth/login tweaks
This commit is contained in:
parent
df9524a6ac
commit
02d4cfc6c5
6 changed files with 23 additions and 26 deletions
|
@ -27,7 +27,6 @@
|
|||
"""
|
||||
|
||||
import formencode
|
||||
from pyramid.view import view_config
|
||||
from pyramid.httpexceptions import HTTPFound
|
||||
from pyramid.security import remember, forget
|
||||
from pyramid_simpleform import Form
|
||||
|
@ -45,7 +44,6 @@ class UserLogin(formencode.Schema):
|
|||
password = formencode.validators.NotEmpty()
|
||||
|
||||
|
||||
@view_config(route_name='login', renderer='/login.mako')
|
||||
def login(context, request):
|
||||
"""
|
||||
The login view, responsible for displaying and handling the login form.
|
||||
|
@ -56,9 +54,10 @@ def login(context, request):
|
|||
elif request.session.get('referer'):
|
||||
referer = request.session.pop('referer')
|
||||
else:
|
||||
referer = request.referer or request.route_url('home')
|
||||
if referer == request.route_url('login'):
|
||||
referer = request.route_url('home')
|
||||
referer = request.referer
|
||||
if not referer or referer == request.route_url('login'):
|
||||
referer = edbob.config.get('edbob.pyramid', 'login.home',
|
||||
default=request.route_url('home'))
|
||||
|
||||
# Redirect if already logged in.
|
||||
if request.user:
|
||||
|
@ -76,20 +75,22 @@ def login(context, request):
|
|||
headers = remember(request, user.uuid)
|
||||
return HTTPFound(location=referer, headers=headers)
|
||||
request.session.flash("Invalid username or password")
|
||||
return {'form': FormRenderer(form), 'referer': referer}
|
||||
|
||||
url = edbob.config.get('edbob.pyramid', 'login.logo_url',
|
||||
default=request.static_url('edbob.pyramid:static/img/logo.jpg'))
|
||||
|
||||
return {'form': FormRenderer(form), 'referer': referer, 'logo_url': url}
|
||||
|
||||
|
||||
@view_config(route_name='logout')
|
||||
def logout(context, request):
|
||||
request.session.delete()
|
||||
request.session.flash("%s logged out at %s" % (
|
||||
request.user.display_name,
|
||||
edbob.local_time().strftime("%I:%M %p")))
|
||||
headers = forget(request)
|
||||
return HTTPFound(location=request.route_url('login'), headers=headers)
|
||||
|
||||
|
||||
def includeme(config):
|
||||
config.add_route('login', '/login')
|
||||
config.add_view(login, route_name='login', renderer='/login.mako')
|
||||
|
||||
config.add_route('logout', '/logout')
|
||||
config.scan()
|
||||
config.add_view(logout, route_name='logout')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue