diff options
author | tr4ck3ur <tr4ck3ur@style-python.fr> | 2015-02-13 02:29:37 +0100 |
---|---|---|
committer | tr4ck3ur <tr4ck3ur@style-python.fr> | 2015-02-13 02:29:37 +0100 |
commit | fa4a9859c57de6b7894ff4b84b75d242f2b796f5 (patch) | |
tree | c6ec352fdd634ca3e645cb2db897a127fcff299b /jm2l/auth.py | |
download | jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.gz jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.bz2 jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.tar.xz jm2l-fa4a9859c57de6b7894ff4b84b75d242f2b796f5.zip |
first drop
Diffstat (limited to 'jm2l/auth.py')
-rw-r--r-- | jm2l/auth.py | 42 |
1 files changed, 42 insertions, 0 deletions
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) + + |