예제 #1
0
def login(request):
    _ = request.translate
    next = request.params.get('next') or request.route_url('account')
    if request.user:
        return HTTPFound(location=next)
    form = LoginForm(request.params, _)

    if request.method == 'POST' and form.validate():
        users = User.filter(
            deleted=False,
            email=form.email.data
        )
        if users and users[0].check_password(form.password.data):
            headers = remember(request, users[0].id)
            return HTTPFound(location=next, headers=headers)
        return {
            'form': form,
            'error': _('Please enter a correct email and password.')
        }
    return {'form': form}