from aiohttp import web
from aiohttp_jinja2 import render_template

from aiohttp_security import authorize, get_user_identity, remember, forget


@authorize(required=True, redirect_url='/login', permission='Steve')
async def index(request, identity=None):
    context = {'name': identity}
    response = render_template('index.html', request, context)
    return response


async def login(request):
    identity = await get_user_identity(request)
    if identity:
        return web.HTTPFound('/')
    response = render_template('login.html', request, {})
    return response


async def login_post(request):
    post_data = await request.post()
    user_id = post_data['username']
    password = post_data['password']
    response = web.Response(body=b'OK')
    await remember(request, response, user_id)
    return response


async def logout(request):
    response = web.Response(body=b'OK')
    await forget(request, response)
    return response