Add handlers

This commit is contained in:
Andrew Svetlov 2015-11-29 15:03:35 +02:00
parent aed49a99ab
commit 6d8b944459
1 changed files with 47 additions and 0 deletions

47
demo/handlers.py Normal file
View File

@ -0,0 +1,47 @@
import asyncio
import functools
from aiohttp import web
from aiohttp_security import remember, forbid, authorized_user_id, permits
def require(permission):
def wrapper(f):
@asyncio.coroutine
@functools.wraps(f)
def wrapped(self, request):
has_perm = yield from permits(request)
if not has_perm:
raise web.HTTPForbidden()
return (yield from f(self, request))
return wrapped
return wrapper
class Web:
@require('public')
@asyncio.coroutine
def index(self, request):
pass
@require('public')
@asyncio.coroutine
def login(self, request):
pass
@require('protected')
@asyncio.coroutine
def logout(self, request):
pass
@require('public')
@asyncio.coroutine
def public(self, request):
pass
@require('protected')
@asyncio.coroutine
def protected(self, request):
pass