Small changes
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import PermissionsMixin, AbstractBaseUser, BaseUserManager
|
||||
from django.core.validators import *
|
||||
from arka.settings import PHONE_VERIFICATION_ENABLE, PHONE_VERIFICATION_ATTEMPTS, PHONE_VERIFICATION_APP_ID
|
||||
from arka.settings import PHONE_VERIFICATION_ENABLE, PHONE_VERIFICATION_ATTEMPTS,\
|
||||
PHONE_VERIFICATION_APP_ID, PHONE_VERIFICATION_RESEND_TIME_SECS
|
||||
|
||||
from threading import Thread, Lock, Event
|
||||
import random
|
||||
@@ -29,9 +30,6 @@ class PhoneVerificationService:
|
||||
def __service_run():
|
||||
while True:
|
||||
try:
|
||||
|
||||
# TODO запилить логику, которая предотвратит злоупотребление вызовами со стороны пользователей
|
||||
|
||||
PhoneVerificationService.__event.wait()
|
||||
phones = None
|
||||
with PhoneVerificationService.__lock:
|
||||
@@ -95,6 +93,7 @@ class PhoneVerificationService:
|
||||
CHECK_PHONE_FAILED = "failed"
|
||||
CHECK_PHONE_INVALID_CODE = "invalid"
|
||||
CHECK_PHONE_MAX_ATTEMPTS = "max-attempts"
|
||||
CHECK_PHONE_RESEND_LIMIT = "resend"
|
||||
|
||||
@staticmethod
|
||||
def check_code(phone: str, code: int):
|
||||
@@ -127,9 +126,14 @@ class PhoneVerificationService:
|
||||
@staticmethod
|
||||
def send_verify(phone: str):
|
||||
with PhoneVerificationService.__lock:
|
||||
PhoneVerificationService.__to_verify.append(phone)
|
||||
if phone in PhoneVerificationService.__codes:
|
||||
c = PhoneVerificationService.__codes[phone]
|
||||
if (datetime.now() - c["time"]).total_seconds() <= PHONE_VERIFICATION_RESEND_TIME_SECS:
|
||||
return False, PhoneVerificationService.CHECK_PHONE_RESEND_LIMIT
|
||||
|
||||
PhoneVerificationService.__event.set()
|
||||
PhoneVerificationService.__to_verify.append(phone)
|
||||
PhoneVerificationService.__event.set()
|
||||
return True, None
|
||||
|
||||
|
||||
class SiteAccountManager(BaseUserManager):
|
||||
|
Reference in New Issue
Block a user