Add handlers
This commit is contained in:
parent
aed49a99ab
commit
6d8b944459
|
@ -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
|
Loading…
Reference in New Issue