41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
|
from datetime import datetime, timedelta
|
||
|
|
||
|
from django.db.models import Q
|
||
|
from django.shortcuts import render
|
||
|
from django.utils import timezone
|
||
|
from django.contrib.auth import authenticate, login as auth_login, logout as auth_logout
|
||
|
from django.http import HttpResponseRedirect
|
||
|
from django.contrib.auth.decorators import login_required
|
||
|
from django.views.decorators.http import require_http_methods
|
||
|
from django.urls import reverse
|
||
|
|
||
|
|
||
|
def login(request):
|
||
|
"""Formulaire d'authentifictation."""
|
||
|
|
||
|
if request.method == "POST":
|
||
|
username = request.POST["login"]
|
||
|
password = request.POST["password"]
|
||
|
|
||
|
user = authenticate(username=username, password=password)
|
||
|
|
||
|
if user is not None:
|
||
|
if user.is_active:
|
||
|
auth_login(request, user)
|
||
|
return HttpResponseRedirect(reverse("year_listing"))
|
||
|
|
||
|
context = {"message": "Account disabled."}
|
||
|
else:
|
||
|
context = {"message": "Wrong login/password."}
|
||
|
else:
|
||
|
context = {}
|
||
|
|
||
|
return render(request, "login.html", context)
|
||
|
|
||
|
|
||
|
@login_required
|
||
|
@require_http_methods(["GET"])
|
||
|
def logout(request):
|
||
|
"""Fonction de déconnexion."""
|
||
|
auth_logout(request)
|
||
|
return HttpResponseRedirect(reverse("login"))
|