feat: Add Password recuperation logic

Added:
- Phase 1 Template + Logic
- Phase 2 Template + Logic
This commit is contained in:
2026-03-20 11:32:54 +01:00
parent 351c9cd955
commit 6f9cb34b6c
16 changed files with 170 additions and 7 deletions
+26 -2
View File
@@ -18,7 +18,8 @@ def enviar_correo_bienvenida(email_usuario: str, nombre_usuario: str):
send_hemail(email_usuario, "Inicio de Sesión correcto", html_content, "Has iniciado sesión...")
@shared_task
def enviar_correo_confirmacion(usuario: User):
def enviar_correo_confirmacion(id: int):
usuario = User.objects.get(id=id)
code = VerificationCode.objects.create(
user = usuario,
code_mode = VerificationCode.VerificationModes.VERIFY_ACCOUNT,
@@ -26,4 +27,27 @@ def enviar_correo_confirmacion(usuario: User):
)
message = verify_message.format(name = usuario.get_full_name(), protocol = settings.PROTOCOL, domain = settings.DOMAIN, code = code.code)
email_result = send_email(usuario.email, "Verificación de cuenta", message)
email_result = send_email(usuario.email, "Verificación de cuenta", message)
@shared_task
def enviar_correo_recuperacion(email: str):
usuario = User.objects.get(email=email)
if usuario is not None:
ver_code = VerificationCode.objects.create(
code_mode = VerificationCode.VerificationModes.RESET_PASSWORD,
user = usuario,
code = ''.join(random.choices(string.digits, k=12))
)
ver_code.save()
html_content = render_to_string(
'emails/reset_pass.html',
{
"name": usuario.get_full_name(),
"domain": settings.DOMAIN,
"protocol": settings.PROTOCOL,
"code": ver_code.code
},
using='jinja2'
)
send_hemail(email, "Reset de Contraseña", html_content, "Estas reseteando la contraseña...")