This repository has been archived on 2025-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
facturio/account/views.py

43 lines
1.2 KiB
Python

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")