API - fix password request email

This commit is contained in:
Sam 2022-03-02 10:39:10 +01:00
parent 023a6ac62a
commit 6c6b4b0ea4
8 changed files with 34 additions and 23 deletions

View File

@ -201,7 +201,7 @@
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="email-masthead"> <td class="email-masthead">
<a href="https://example.com" class="f-fallback email-masthead-name"> <a href="{{fittrackee_url}}" class="f-fallback email-masthead-name">
FitTrackee FitTrackee
</a> </a>
</td> </td>

View File

@ -1,10 +1,12 @@
Hi {{username}}, Hi {{username}},
You recently requested to reset your password for your FitTrackee account. Use the button below to reset it. This password reset link is only valid for {{ expiration_delay }}. You recently requested to reset your password for your FitTrackee account. Use the link below to reset it. This password reset link is only valid for {{ expiration_delay }}.
Reset your password ( {{ password_reset_url }} ) Reset your password: {{ password_reset_url }}
For security, this request was received from a {{operating_system}} device using {{browser_name}}. If you did not request a password reset, please ignore this email. For security, this request was received from a {{operating_system}} device using {{browser_name}}.
If you did not request a password reset, please ignore this email.
Thanks, Thanks,
The FitTrackee Team The FitTrackee Team
{{fittrackee_url}}

View File

@ -201,7 +201,7 @@
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="email-masthead"> <td class="email-masthead">
<a href="https://example.com" class="f-fallback email-masthead-name"> <a href="{{fittrackee_url}}" class="f-fallback email-masthead-name">
FitTrackee FitTrackee
</a> </a>
</td> </td>
@ -213,7 +213,7 @@
<td class="content-cell"> <td class="content-cell">
<div class="f-fallback"> <div class="f-fallback">
<h1>Bonjour {{username}},</h1> <h1>Bonjour {{username}},</h1>
<p>Vous avez récemment demander la réinitilisation du mot de passe de votre compte sur FitTrackee. <p>Vous avez récemment demandé la réinitialisation du mot de passe de votre compte sur FitTrackee.
Cliquez sur le bouton ci-dessous pour le réinitialiser. Cliquez sur le bouton ci-dessous pour le réinitialiser.
<strong>Cette réinitialisation n'est valide que pendant {{ expiration_delay }}.</strong> <strong>Cette réinitialisation n'est valide que pendant {{ expiration_delay }}.</strong>
</p> </p>
@ -232,7 +232,7 @@
</table> </table>
<p> <p>
Pour vérification, cette demande a été reçue à partir d'un appareil sous {{operating_system}}, utilisant le navigateur {{browser_name}}. Pour vérification, cette demande a été reçue à partir d'un appareil sous {{operating_system}}, utilisant le navigateur {{browser_name}}.
Si vous n'avez pas demandé de réinitalisation, vous pouvez ignorer cet e-mail. Si vous n'avez pas demandé de réinitialisation, vous pouvez ignorer cet e-mail.
</p> </p>
<p>Merci, <p>Merci,
<br>L'équipe FitTrackee</p> <br>L'équipe FitTrackee</p>

View File

@ -1,12 +1,13 @@
Bonjour {{username}}, Bonjour {{username}},
Vous avez récemment demander la réinitilisation du mot de passe de votre compte sur FitTrackee. Vous avez récemment demandé la réinitialisation du mot de passe de votre compte sur FitTrackee.
Cliquez sur le lien ci-dessous pour le réinitialiser. Ce lien n'est valide que pendant {{ expiration_delay }}. Cliquez sur le lien ci-dessous pour le réinitialiser. Ce lien n'est valide que pendant {{ expiration_delay }}.
Réinitialiser le mot de passe: ( {{ password_reset_url }} ) Réinitialiser le mot de passe : {{ password_reset_url }}
Pour vérification, cette demande a été reçue à partir d'un appareil sous {{operating_system}}, utilisant le navigateur {{browser_name}}. Pour vérification, cette demande a été reçue à partir d'un appareil sous {{operating_system}}, utilisant le navigateur {{browser_name}}.
Si vous n'avez pas demandé de réinitalisation, vous pouvez ignorer cet e-mail. Si vous n'avez pas demandé de réinitialisation, vous pouvez ignorer cet e-mail.
Merci, Merci,
L'équipe FitTrackee L'équipe FitTrackee
{{fittrackee_url}}

View File

@ -2,27 +2,30 @@
expected_en_text_body = """Hi test, expected_en_text_body = """Hi test,
You recently requested to reset your password for your FitTrackee account. Use the button below to reset it. This password reset link is only valid for 3 seconds. You recently requested to reset your password for your FitTrackee account. Use the link below to reset it. This password reset link is only valid for 3 seconds.
Reset your password ( http://localhost/password-reset?token=xxx ) Reset your password: http://localhost/password-reset?token=xxx
For security, this request was received from a Linux device using Firefox. If you did not request a password reset, please ignore this email. For security, this request was received from a Linux device using Firefox.
If you did not request a password reset, please ignore this email.
Thanks, Thanks,
The FitTrackee Team""" The FitTrackee Team
http://localhost"""
expected_fr_text_body = """Bonjour test, expected_fr_text_body = """Bonjour test,
Vous avez récemment demander la réinitilisation du mot de passe de votre compte sur FitTrackee. Vous avez récemment demandé la réinitialisation du mot de passe de votre compte sur FitTrackee.
Cliquez sur le lien ci-dessous pour le réinitialiser. Ce lien n'est valide que pendant 3 secondes. Cliquez sur le lien ci-dessous pour le réinitialiser. Ce lien n'est valide que pendant 3 secondes.
Réinitialiser le mot de passe: ( http://localhost/password-reset?token=xxx ) Réinitialiser le mot de passe : http://localhost/password-reset?token=xxx
Pour vérification, cette demande a été reçue à partir d'un appareil sous Linux, utilisant le navigateur Firefox. Pour vérification, cette demande a été reçue à partir d'un appareil sous Linux, utilisant le navigateur Firefox.
Si vous n'avez pas demandé de réinitalisation, vous pouvez ignorer cet e-mail. Si vous n'avez pas demandé de réinitialisation, vous pouvez ignorer cet e-mail.
Merci, Merci,
L'équipe FitTrackee""" L'équipe FitTrackee
http://localhost"""
expected_en_html_body = """ <body> expected_en_html_body = """ <body>
<span class="preheader">Use this link to reset your password. The link is only valid for 3 seconds.</span> <span class="preheader">Use this link to reset your password. The link is only valid for 3 seconds.</span>
@ -32,7 +35,7 @@ expected_en_html_body = """ <body>
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="email-masthead"> <td class="email-masthead">
<a href="https://example.com" class="f-fallback email-masthead-name"> <a href="http://localhost" class="f-fallback email-masthead-name">
FitTrackee FitTrackee
</a> </a>
</td> </td>
@ -106,7 +109,7 @@ expected_fr_html_body = """ <body>
<table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="email-content" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
<td class="email-masthead"> <td class="email-masthead">
<a href="https://example.com" class="f-fallback email-masthead-name"> <a href="http://localhost" class="f-fallback email-masthead-name">
FitTrackee FitTrackee
</a> </a>
</td> </td>
@ -118,7 +121,7 @@ expected_fr_html_body = """ <body>
<td class="content-cell"> <td class="content-cell">
<div class="f-fallback"> <div class="f-fallback">
<h1>Bonjour test,</h1> <h1>Bonjour test,</h1>
<p>Vous avez récemment demander la réinitilisation du mot de passe de votre compte sur FitTrackee. <p>Vous avez récemment demandé la réinitialisation du mot de passe de votre compte sur FitTrackee.
Cliquez sur le bouton ci-dessous pour le réinitialiser. Cliquez sur le bouton ci-dessous pour le réinitialiser.
<strong>Cette réinitialisation n'est valide que pendant 3 secondes.</strong> <strong>Cette réinitialisation n'est valide que pendant 3 secondes.</strong>
</p> </p>
@ -137,7 +140,7 @@ expected_fr_html_body = """ <body>
</table> </table>
<p> <p>
Pour vérification, cette demande a été reçue à partir d'un appareil sous Linux, utilisant le navigateur Firefox. Pour vérification, cette demande a été reçue à partir d'un appareil sous Linux, utilisant le navigateur Firefox.
Si vous n'avez pas demandé de réinitalisation, vous pouvez ignorer cet e-mail. Si vous n'avez pas demandé de réinitialisation, vous pouvez ignorer cet e-mail.
</p> </p>
<p>Merci, <p>Merci,
<br>L'équipe FitTrackee</p> <br>L'équipe FitTrackee</p>

View File

@ -97,6 +97,7 @@ class TestEmailServiceSend(CallArgsMixin):
'password_reset_url': 'http://localhost/password-reset?token=xxx', 'password_reset_url': 'http://localhost/password-reset?token=xxx',
'operating_system': 'Linux', 'operating_system': 'Linux',
'browser_name': 'Firefox', 'browser_name': 'Firefox',
'fittrackee_url': 'http://localhost',
} }
def assert_smtp(self, smtp: Mock) -> None: def assert_smtp(self, smtp: Mock) -> None:

View File

@ -44,6 +44,7 @@ class TestEmailTemplateForPasswordRequest:
'password_reset_url': 'http://localhost/password-reset?token=xxx', 'password_reset_url': 'http://localhost/password-reset?token=xxx',
'operating_system': 'Linux', 'operating_system': 'Linux',
'browser_name': 'Firefox', 'browser_name': 'Firefox',
'fittrackee_url': 'http://localhost',
} }
text_body = email_template.get_content( text_body = email_template.get_content(
@ -60,6 +61,7 @@ class TestEmailTemplateForPasswordRequest:
'password_reset_url': 'http://localhost/password-reset?token=xxx', 'password_reset_url': 'http://localhost/password-reset?token=xxx',
'operating_system': 'Linux', 'operating_system': 'Linux',
'browser_name': 'Firefox', 'browser_name': 'Firefox',
'fittrackee_url': 'http://localhost',
} }
text_body = email_template.get_content( text_body = email_template.get_content(
@ -76,6 +78,7 @@ class TestEmailTemplateForPasswordRequest:
'password_reset_url': 'http://localhost/password-reset?token=xxx', 'password_reset_url': 'http://localhost/password-reset?token=xxx',
'operating_system': 'Linux', 'operating_system': 'Linux',
'browser_name': 'Firefox', 'browser_name': 'Firefox',
'fittrackee_url': 'http://localhost',
} }
text_body = email_template.get_content( text_body = email_template.get_content(

View File

@ -1156,6 +1156,7 @@ def request_password_reset() -> Union[Dict, HttpResponse]:
'password_reset_url': ( 'password_reset_url': (
f'{ui_url}/password-reset?token={password_reset_token}' # noqa f'{ui_url}/password-reset?token={password_reset_token}' # noqa
), ),
'fittrackee_url': ui_url,
'operating_system': request.user_agent.platform, # type: ignore 'operating_system': request.user_agent.platform, # type: ignore
'browser_name': request.user_agent.browser, # type: ignore 'browser_name': request.user_agent.browser, # type: ignore
} }
@ -1173,7 +1174,7 @@ def request_password_reset() -> Union[Dict, HttpResponse]:
@auth_blueprint.route('/auth/password/update', methods=['POST']) @auth_blueprint.route('/auth/password/update', methods=['POST'])
def update_password() -> Union[Dict, HttpResponse]: def update_password() -> Union[Dict, HttpResponse]:
""" """
update user password update user password after password reset request
**Example request**: **Example request**: