from django.conf import settings from django.contrib.auth import login, logout from django.contrib.auth.decorators import login_required from django.http import HttpRequest, HttpResponse, JsonResponse from django.shortcuts import redirect, render from . import forms def auth_login(req: HttpRequest) -> HttpResponse: if req.method == "POST": form = forms.LoginForm(req, req.POST) if not form.is_valid(): return render(req, "account/login.html", dict(form=form)) user = form.get_user() login(req, user) redirect_url = getattr(req.GET, "next", settings.LOGIN_REDIRECT_URL) return redirect(redirect_url) elif req.method == "GET": form = forms.LoginForm(req) return render(req, "account/login.html", dict(form=form)) return HttpResponse(status=405) @login_required def auth_logout(req: HttpRequest) -> HttpResponse: logout(req) return redirect(settings.LOGOUT_REDIRECT_URL) def auth_register(req: HttpRequest) -> HttpResponse: return render(req, "account/register.html") @login_required def me(req: HttpRequest) -> HttpResponse: return render(req, "account/me.html")