bot
This commit is contained in:
@@ -1,29 +1,6 @@
|
||||
from django.contrib.auth import authenticate, login
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
||||
from SprintLib.BaseView import BaseView
|
||||
|
||||
|
||||
class EnterView(BaseView):
|
||||
view_file = "enter.html"
|
||||
required_login = False
|
||||
|
||||
def get(self):
|
||||
self.context["error_message"] = self.request.GET.get("error_message", "")
|
||||
|
||||
def post(self):
|
||||
try:
|
||||
user = User.objects.get(username=self.request.POST["email"])
|
||||
except ObjectDoesNotExist:
|
||||
try:
|
||||
user = User.objects.get(email=self.request.POST["email"])
|
||||
except ObjectDoesNotExist:
|
||||
return "/enter?error_message=Данного пользователя не существует"
|
||||
user = authenticate(
|
||||
username=user.username, password=self.request.POST["password"].strip()
|
||||
)
|
||||
if user is not None:
|
||||
login(self.request, user)
|
||||
return "/"
|
||||
return "/enter?error_message=Неверный пароль"
|
||||
|
@@ -1,39 +0,0 @@
|
||||
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"
|
31
Main/views/SendCodeView.py
Normal file
31
Main/views/SendCodeView.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from django.contrib.auth import login
|
||||
|
||||
from Main.management.commands.bot import bot
|
||||
from SprintLib.BaseView import BaseView
|
||||
from django.contrib.auth.models import User
|
||||
from random import randrange
|
||||
|
||||
|
||||
class SendCodeView(BaseView):
|
||||
def post_create(self):
|
||||
username = self.request.POST["username"]
|
||||
user = User.objects.filter(username=username).first()
|
||||
if not user:
|
||||
return {"success": False, "message": "Пользователя с таким именем не существует"}
|
||||
code = randrange(10000, 100000)
|
||||
user.userinfo.code = code
|
||||
user.userinfo.save()
|
||||
bot.send_message(user.userinfo.telegram_chat_id, "Код для входа в сервис: " + str(code))
|
||||
return {"success": True, "message": "Код отправлен"}
|
||||
|
||||
def post_check(self):
|
||||
username = self.request.POST["username"]
|
||||
user = User.objects.filter(username=username).first()
|
||||
if not user:
|
||||
return {"success": False, "message": "Пользователя с таким именем не существует"}
|
||||
code = int(self.request.POST["code"])
|
||||
if code == user.userinfo.code:
|
||||
login(self.request, user)
|
||||
return {"success": True, "message": "Успешно"}
|
||||
else:
|
||||
return {"success": False, "message": "Код неверен"}
|
@@ -12,3 +12,4 @@ from Main.views.SolutionsTableView import SolutionsTableView
|
||||
from Main.views.TaskRuntimeView import TaskRuntimeView
|
||||
from Main.views.SolutionView import SolutionView
|
||||
from Main.views.ImageView import ImageView
|
||||
from Main.views.SendCodeView import SendCodeView
|
||||
|
Reference in New Issue
Block a user