From 565a0cb4a19cbe48c5a7b2cf924f8f3ae8eb0371 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 25 Jan 2025 17:11:56 +0100
Subject: [PATCH] =?UTF-8?q?DSN:=20send=5Fpassword=5Freset=5Femail=20dost?=
 =?UTF-8?q?=C3=A1v=C3=A1=20cel=C3=BD=20RegRequest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... a jeho DSN token je také vázaný na RegRequest, nejen na uživatele.
---
 mo/email.py    | 4 ++--
 mo/web/acct.py | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mo/email.py b/mo/email.py
index 1b03ae09..78684545 100644
--- a/mo/email.py
+++ b/mo/email.py
@@ -225,7 +225,7 @@ def send_new_account_email(user: db.User, token: str) -> bool:
     '''.format(activate_url(token))))
 
 
-def send_password_reset_email(user: db.User, token: str) -> bool:
+def send_password_reset_email(user: db.User, rr: db.RegRequest) -> bool:
     return send_user_email(user, 'Obnova hesla', textwrap.dedent('''\
         Někdo požádal o obnovení hesla k Vašemu účtu v Odevzdávacím systému
         Matematické olympiády.
@@ -235,7 +235,7 @@ def send_password_reset_email(user: db.User, token: str) -> bool:
                 {}
 
         Váš OSMO
-    '''.format(confirm_url('p', token))))
+    '''.format(confirm_url('p', rr.email_token))), rr=rr)
 
 
 def send_confirm_create_email(user: db.User, rr: db.RegRequest) -> bool:
diff --git a/mo/web/acct.py b/mo/web/acct.py
index b15a62be..e4b8d5f0 100644
--- a/mo/web/acct.py
+++ b/mo/web/acct.py
@@ -73,7 +73,7 @@ def login():
             rr = mo.users.request_reset_password(user, request.remote_addr)
             if rr:
                 db.get_session().commit()
-                mo.email.send_password_reset_email(user, rr.email_token)
+                mo.email.send_password_reset_email(user, rr)
                 flash('Na uvedenou adresu byl odeslán e-mail s odkazem na obnovu hesla.', 'success')
             else:
                 flash('Příliš časté požadavky na obnovu hesla.', 'danger')
-- 
GitLab