40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
from django.contrib.auth.models import User
|
|
|
|
from Main.models import UserInfo
|
|
from SprintLib.BaseView import BaseView
|
|
|
|
|
|
class RegisterView(BaseView):
|
|
view_file = "register.html"
|
|
required_login = False
|
|
|
|
def get(self):
|
|
self.context["error_message"] = self.request.GET.get("error_message", "")
|
|
|
|
def post(self):
|
|
data = self.request.POST
|
|
if len(data["password"]) < 8:
|
|
return "/register?error_message=Пароль слишком слабый"
|
|
if data["password"] != data["repeat_password"]:
|
|
return "/register?error_message=Пароли не совпадают"
|
|
if len(User.objects.filter(username=data["username"])):
|
|
return "/register?error_message=Данное имя пользователя уже занято"
|
|
|
|
if len(User.objects.filter(email=data["email"])):
|
|
return "/register?error_message=Пользователь под таким email уже зарегистрирован"
|
|
user = User.objects.create_user(
|
|
data["username"],
|
|
data["email"],
|
|
password=data["password"],
|
|
)
|
|
userinfo = UserInfo.objects.create(
|
|
surname=data["surname"],
|
|
name=data["name"],
|
|
middle_name=data["middle_name"],
|
|
user=user,
|
|
)
|
|
user.userinfo = userinfo
|
|
user.save()
|
|
# todo: реализовать подтверждение по почте
|
|
return "/enter"
|