88 lines
3.3 KiB
Python
88 lines
3.3 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, PlayerUpdateForm, UserUpdateForm
|
|
from users.models import Player
|
|
from users.util import bloonsa_util, actions
|
|
|
|
|
|
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})
|
|
user = form.get_user()
|
|
login(request=request, user=user)
|
|
bloonsa_util.log(player=user.player,
|
|
action=actions.login)
|
|
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})
|
|
user = form.save()
|
|
player = bloonsa_util.init_player(request=request)
|
|
login(request=request, user=user)
|
|
bloonsa_util.log(player=player,
|
|
action=actions.login)
|
|
return redirect("bloonsa_game:game")
|
|
|
|
|
|
|
|
class LogoutView(TemplateView):
|
|
def get(self, request, *args, **kwargs):
|
|
if request.user.is_authenticated:
|
|
bloonsa_util.log(request=request,
|
|
action=actions.logout)
|
|
logout(request)
|
|
return redirect("bloonsa_game:game")
|
|
|
|
|
|
class ConfigView(TemplateView):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
form_player = PlayerUpdateForm()
|
|
form_user = UserUpdateForm()
|
|
return render(request=request,
|
|
template_name="users/config.html",
|
|
context={"form_player": form_player,
|
|
"form_user": form_user})
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
form_player = PlayerUpdateForm(request.POST)
|
|
form_user = UserUpdateForm(request.POST)
|
|
if any((
|
|
not form_player.is_valid(),
|
|
not form_user.is_valid()
|
|
)):
|
|
return render(request=request,
|
|
template_name="users/config.html",
|
|
context={
|
|
"form_player": form_player,
|
|
"form_user": form_user
|
|
})
|
|
user = form_user.save()
|
|
player = form_player.save()
|
|
#bloonsa_util.log(player=player,
|
|
# action=actions.login)
|
|
return render(request=request,
|
|
template_name="users/config.html",
|
|
context={
|
|
"form_player": form_player,
|
|
"form_user": form_user
|
|
}) |