46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
from django.contrib.auth import login, logout
|
|
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
|
|
from django.shortcuts import render, redirect
|
|
from django.views.generic import TemplateView
|
|
|
|
from users.forms import UserRegisterForm, UserLoginForm
|
|
|
|
|
|
class LoginView(TemplateView):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form = UserLoginForm()
|
|
return render(request=request, template_name="users/login.html", context={"form": form})
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
form = UserLoginForm(data=request.POST)
|
|
if not form.is_valid():
|
|
return render(request=request, template_name="users/login.html", context={"form": form})
|
|
login(request=request, user=form.get_user())
|
|
return redirect("bloonsa_game:game")
|
|
|
|
|
|
class RegisterView(TemplateView):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form = UserRegisterForm()
|
|
return render(request=request, template_name="users/register.html", context={"form": form})
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
form = UserRegisterForm(request.POST)
|
|
if not form.is_valid():
|
|
return render(request=request, template_name="users/register.html", context={"form": form})
|
|
login(request=request, user=form.save())
|
|
return redirect("bloonsa_game:game")
|
|
|
|
|
|
|
|
class LogoutView(TemplateView):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
if request.user.is_authenticated:
|
|
logout(request)
|
|
return redirect("bloonsa_game:game")
|
|
|
|
|