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