mirror of
https://github.com/ajurna/cbwebreader.git
synced 2025-12-06 22:27:19 +00:00
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from django.contrib.auth import authenticate, login, logout
|
|
from django.contrib.auth.models import User
|
|
from django.shortcuts import redirect, render
|
|
from django.utils.http import url_has_allowed_host_and_scheme
|
|
|
|
from comic_auth.forms import LoginForm
|
|
|
|
|
|
def comic_login(request):
|
|
if request.POST:
|
|
form = LoginForm(request.POST)
|
|
if form.is_valid():
|
|
user = authenticate(username=form.cleaned_data["username"], password=form.cleaned_data["password"])
|
|
if user is not None:
|
|
if user.is_active:
|
|
login(request, user)
|
|
if "next" in request.GET:
|
|
if url_has_allowed_host_and_scheme(request.GET["next"], allowed_hosts=None):
|
|
return redirect(request.GET["next"])
|
|
else:
|
|
return redirect("/comic/")
|
|
else:
|
|
return redirect("/comic/")
|
|
else:
|
|
return render(request, "comic_auth/login.html", {"error": True})
|
|
else:
|
|
return render(request, "comic_auth/login.html", {"error": True, "form": form})
|
|
else:
|
|
return render(request, "comic_auth/login.html", {"error": True, "form": form})
|
|
else:
|
|
if not User.objects.all().exists():
|
|
return redirect("/setup/")
|
|
form = LoginForm()
|
|
context = {"form": form}
|
|
return render(request, "comic_auth/login.html", context)
|
|
|
|
|
|
def comic_logout(request):
|
|
logout(request)
|
|
return redirect("/login/")
|