create PendingCaptchaUser before uploading CAPTCHA: closing abuse possibility
This commit is contained in:
parent
bad18f3d0d
commit
8d0ae6301b
|
@ -272,6 +272,17 @@ class WebHookView(View):
|
|||
secret = ''
|
||||
while len(secret) < telegramGroupPreferences.captcha_digits:
|
||||
secret += random.choice(telegramGroupPreferences.captcha_chars)
|
||||
models.PendingCaptchaUser.objects.filter(group=telegramGroup, user=telegramMember).delete()
|
||||
pcu = models.PendingCaptchaUser(
|
||||
bot_token=telegram,
|
||||
user=telegramMember,
|
||||
group=telegramGroup,
|
||||
captcha_answer=secret,
|
||||
attempts_left=telegramGroupPreferences.captcha_attempts,
|
||||
lifetime=telegramGroupPreferences.captcha_timeout,
|
||||
captcha_message_id=0,
|
||||
)
|
||||
pcu.save()
|
||||
imbytes = imageCaptcha.generate(secret)
|
||||
captcha_message = (telegramGroupPreferences.captcha_first_message
|
||||
.replace('{NAME}', telegramMember.name)
|
||||
|
@ -289,16 +300,8 @@ class WebHookView(View):
|
|||
photo=imbytes,
|
||||
caption=captcha_message,
|
||||
)
|
||||
models.PendingCaptchaUser.objects.filter(group=telegramGroup, user=telegramMember).delete()
|
||||
models.PendingCaptchaUser(
|
||||
bot_token=telegram,
|
||||
user=telegramMember,
|
||||
group=telegramGroup,
|
||||
captcha_answer=secret,
|
||||
attempts_left=telegramGroupPreferences.captcha_attempts,
|
||||
lifetime=telegramGroupPreferences.captcha_timeout,
|
||||
captcha_message_id=sent_message.message_id,
|
||||
).save()
|
||||
pcu.captcha_message_id = sent_message.message_id
|
||||
pcu.save()
|
||||
else:
|
||||
send_hello(telegramMember)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user