bloonsworld/app/users/views.py

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")