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

44 lines
1.2 KiB
Python
Raw Normal View History

2023-12-18 21:00:37 +01:00
from django.conf import settings
2023-12-18 23:05:49 +01:00
from django.contrib.auth import login, logout
2023-12-18 21:00:37 +01:00
from django.contrib.auth.decorators import login_required
from django.http import HttpRequest, HttpResponse, JsonResponse
from django.shortcuts import redirect, render
2023-12-18 23:05:49 +01:00
from . import forms
2023-12-18 21:00:37 +01:00
def auth_login(req: HttpRequest) -> HttpResponse:
if req.method == "POST":
2023-12-18 23:05:49 +01:00
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)
2023-12-18 21:00:37 +01:00
elif req.method == "GET":
2023-12-18 23:05:49 +01:00
form = forms.LoginForm(req)
return render(req, "account/login.html", dict(form=form))
2023-12-18 21:00:37 +01:00
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")
2023-12-18 23:05:49 +01:00
2023-12-18 21:00:37 +01:00
@login_required
def me(req: HttpRequest) -> HttpResponse:
return render(req, "account/me.html")