From fa4a9859c57de6b7894ff4b84b75d242f2b796f5 Mon Sep 17 00:00:00 2001 From: tr4ck3ur Date: Fri, 13 Feb 2015 02:29:37 +0100 Subject: first drop --- jm2l/auth.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 jm2l/auth.py (limited to 'jm2l/auth.py') diff --git a/jm2l/auth.py b/jm2l/auth.py new file mode 100644 index 0000000..41f16b6 --- /dev/null +++ b/jm2l/auth.py @@ -0,0 +1,42 @@ + +from pyramid.view import view_config +from pyramid.security import remember, forget +from pyramid.httpexceptions import HTTPFound +from .models import User + +@view_config(route_name='auth', match_param="action=login", renderer="jm2l:templates/login.mako") +def login(request): + return {} + +@view_config(route_name='bymail', renderer="string") +def bymail(request): + myhash = request.matchdict.get('hash', "") + user = User.by_hash(myhash) + if user: + headers = remember(request, user.uid) + return HTTPFound(location=request.route_url('jm2l'), + headers=headers) + else: + headers = forget(request) + return HTTPFound(location=request.route_url('auth', action='login'), + headers=headers) + +@view_config(route_name='auth', match_param="action=in", renderer="string", + request_method="POST") +@view_config(route_name='auth', match_param="action=out", renderer="string") +def sign_in_out(request): + username = request.POST.get('username') + if username: + user = User.by_name(username) + if user and user.verify_password(request.POST.get('password')): + headers = remember(request, user.uid) + return HTTPFound(location=request.route_url('jm2l'), + headers=headers) + else: + headers = forget(request) + else: + headers = forget(request) + return HTTPFound(location=request.route_url('home'), + headers=headers) + + -- cgit v1.2.3-54-g00ecf