Skip to content
Snippets Groups Projects
Commit 010069d3 authored by Martin Mareš's avatar Martin Mareš
Browse files

Při změně e-mailu posíláme potvrzovací mail na *novou* adresu

parent 18a42658
No related branches found
No related tags found
No related merge requests found
...@@ -69,7 +69,7 @@ def send_email(send_to: str, full_name: str, subject: str, body: str) -> bool: ...@@ -69,7 +69,7 @@ def send_email(send_to: str, full_name: str, subject: str, body: str) -> bool:
return True return True
def send_user_email(user: db.User, subject: str, body: str, add_footer: bool = False) -> bool: def send_user_email(user: db.User, subject: str, body: str, add_footer: bool = False, override_email: Optional[str] = None) -> bool:
logger.info(f'Mail: "{subject}" -> {user.email} (#{user.user_id})') logger.info(f'Mail: "{subject}" -> {user.email} (#{user.user_id})')
if add_footer: if add_footer:
...@@ -77,7 +77,7 @@ def send_user_email(user: db.User, subject: str, body: str, add_footer: bool = F ...@@ -77,7 +77,7 @@ def send_user_email(user: db.User, subject: str, body: str, add_footer: bool = F
body += "Pokud nechcete tyto e-maily dostávat, vypněte si notifikace v nastavení\n" body += "Pokud nechcete tyto e-maily dostávat, vypněte si notifikace v nastavení\n"
body += f"svého účtu na {settings_url()}." body += f"svého účtu na {settings_url()}."
return send_email(user.email, user.full_name(), 'OSMO – ' + subject, body) return send_email(override_email or user.email, user.full_name(), 'OSMO – ' + subject, body)
def activate_url(token: str) -> str: def activate_url(token: str) -> str:
...@@ -136,7 +136,7 @@ def send_confirm_create_email(user: db.User, token: str) -> bool: ...@@ -136,7 +136,7 @@ def send_confirm_create_email(user: db.User, token: str) -> bool:
'''.format(confirm_url('r', token)))) '''.format(confirm_url('r', token))))
def send_confirm_change_email(user: db.User, token: str) -> bool: def send_confirm_change_email(user: db.User, token: str, new_email: str) -> bool:
return send_user_email(user, 'Změna e-mailové adresy', textwrap.dedent('''\ return send_user_email(user, 'Změna e-mailové adresy', textwrap.dedent('''\
Někdo (pravděpodobně Vy) požádal o nastavení e-mailové adresy k účtu Někdo (pravděpodobně Vy) požádal o nastavení e-mailové adresy k účtu
v Odevzdávacím systému Matematické olympiády na tuto adresu. v Odevzdávacím systému Matematické olympiády na tuto adresu.
...@@ -145,7 +145,7 @@ def send_confirm_change_email(user: db.User, token: str) -> bool: ...@@ -145,7 +145,7 @@ def send_confirm_change_email(user: db.User, token: str) -> bool:
{} {}
Váš OSMO Váš OSMO
'''.format(confirm_url('e', token)))) '''.format(confirm_url('e', token))), override_email=new_email)
def send_join_notify_email(dest: db.User, who: db.User, contest: db.Contest) -> bool: def send_join_notify_email(dest: db.User, who: db.User, contest: db.Contest) -> bool:
......
...@@ -205,7 +205,7 @@ def user_settings_personal(): ...@@ -205,7 +205,7 @@ def user_settings_personal():
sess.commit() sess.commit()
app.logger.info(f'Settings: Požadavek na změnu e-mailu uživatele #{user.user_id}') app.logger.info(f'Settings: Požadavek na změnu e-mailu uživatele #{user.user_id}')
flash('Odeslán e-mail s odkazem na potvrzení nové adresy.', 'success') flash('Odeslán e-mail s odkazem na potvrzení nové adresy.', 'success')
mo.email.send_confirm_change_email(user, rr.email_token) mo.email.send_confirm_change_email(user, rr.email_token, new_email=rr.email)
else: else:
app.logger.info('Settings: Rate limit') app.logger.info('Settings: Rate limit')
flash('Příliš mnoho požadavků na změny e-mailu. Počkejte prosím chvíli a zkuste to znovu.', 'danger') flash('Příliš mnoho požadavků na změny e-mailu. Počkejte prosím chvíli a zkuste to znovu.', 'danger')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment