aboutsummaryrefslogtreecommitdiff
path: root/authentication/views.py
blob: e91ec0fd5f024af8bcc8324aa8a3a53ec13e853c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from django.contrib import messages
from django.contrib.auth import authenticate, login as auth_login, logout as auth_logout
from django.shortcuts import redirect
from authentication.functions import email_verified


def login(request):
    next = request.POST.get("next", "core:home").strip()
    username = request.POST.get("username")
    password = request.POST.get("password")

    if username == "" or password == "" or username is None or password is None:
        messages.error(request, "ErrorEmptyFields", extra_tags="LoginError")
        return redirect(f"{next}?username={username}" if username else next)
    else:
        user = authenticate(request, username=username, password=password)
        if user is not None:
            if email_verified(user):
                auth_login(request, user)
                return redirect(next)
            else:
                messages.error(
                    request, "ErrorEmailNotVerified", extra_tags="LoginError"
                )
                return redirect(f"{next}?username={username}")
        else:
            messages.error(request, "ErrorInvalidCredentials", extra_tags="LoginError")
            return redirect(f"{next}?username={username}")


def logout(request):
    auth_logout(request)
    referer = request.META.get("HTTP_REFERER", "/")
    return redirect(referer)