Skip to content

Commit

Permalink
refactor(send code): create route + page for resend code action
Browse files Browse the repository at this point in the history
  • Loading branch information
rebeccadumazert committed Oct 9, 2024
1 parent 9468e72 commit 885972e
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 54 deletions.
26 changes: 26 additions & 0 deletions src/controllers/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -296,3 +296,29 @@ export const getHelpController = async (
next(error);
}
};

export const getVerificationCodeController = async (
req: Request,
res: Response,
next: NextFunction,
) => {
try {
let email: string | undefined;
let user: User | undefined;
let cached_libelle: string | null | undefined;

if (isWithinAuthenticatedSession(req.session)) {
user = getUserFromAuthenticatedSession(req);
email = user.email;
}

return res.render("verification-code", {
pageTitle: "Renvoyer un code",
email,
csrfToken: email && csrfToken(req),
organization_label: cached_libelle,
});
} catch (error) {
next(error);
}
};
9 changes: 9 additions & 0 deletions src/routers/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
getHomeController,
getManageOrganizationsController,
getPersonalInformationsController,
getVerificationCodeController,
postDisableForce2faController,
postEnableForce2faController,
postPersonalInformationsController,
Expand Down Expand Up @@ -152,6 +153,14 @@ export const mainRouter = (app: Express) => {
getHelpController,
);

mainRouter.get(
"/verification-code",
urlencoded({ extended: false }),
ejsLayoutMiddlewareFactory(app, true),
csrfProtectionMiddleware,
getVerificationCodeController,
);

return mainRouter;
};

Expand Down
53 changes: 0 additions & 53 deletions src/views/help.ejs
Original file line number Diff line number Diff line change
@@ -1,58 +1,5 @@
<div class="page-container">
<h2>Questions fréquentes</h2>
<div id="code-verification">
<h3 class="title-with-anchor">
<span>Vous ne recevez pas le code de vérification</span>
<a
aria-label="Lien direct vers section Vous ne recevez pas le code de vérification"
class="fr-btn fr-btn--sm fr-icon-link fr-btn--tertiary-no-outline"
href="#code-verification"
></a>
</h3>
<p>Vous êtes peut-être dans l’une de ces situations :</p>
<ul>
<li class="fr-mb-3w">Vous avez fait une erreur de saisie dans votre adresse
<% if (locals.email) { %>
<span id="email-badge-lowercase" class="fr-badge fr-badge--info fr-badge--no-icon">
<%= email; %>
</span>
<% } else { %>
email
<% } %>
<br>
💡 <b><a class="fr-link" href="/users/start-sign-in">Recréez un compte avec la
bonne adresse</a></b></li>
<li class="fr-mb-3w">Le code est arrivé dans vos courriers indésirables<br>
💡 <b>Vérifiez vos spams</b></li>
<li class="fr-mb-3w">Votre organisation utilise une protection contre les spams (comme MailInBlack)<br>
💡 <b>Contactez votre fournisseur de mail pour qu’il autorise les emails en provenance de
<i>[email protected]</i> (adresse IP : 172.246.41.163)</b>
</li>
<% if (locals.csrfToken) { %>
<li class="fr-mb-3w">Votre code a expiré ou vous avez perdu l’email qui contenait le code<br>
💡 <b>
<form
class="inline-form" autocomplete="off"
action="/users/send-email-verification"
method="post"
>
<input type="hidden" name="_csrf" value="<%= csrfToken; %>" autocomplete="off">
<input
class="fr-link" type="submit"
value="Cliquez ici pour recevoir un nouveau code"
/>
</form>
</b>
</li>
<% } %>
</ul>
<p>Vous n’êtes dans aucune de ces situations ? <a
class="fr-link"
href="mailto:[email protected]?subject=Je%20ne%20re%C3%A7ois%20pas%20le%20code%20de%20verification"
>Contactez-nous</a>.
</p>
</div>
<% if (locals.email && locals.moderation_id) { %>
<div id="modifier-moderation">
<h3 class="title-with-anchor">
Expand Down
2 changes: 1 addition & 1 deletion src/views/user/verify-email.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<div>
<a
class="fr-link fr-icon-question-line fr-link--icon-left"
href="/help#code-verification"
href="/verification-code"
>
J'ai attendu 15 minutes et je ne reçois pas de code de vérification
</a>
Expand Down
63 changes: 63 additions & 0 deletions src/views/verification-code.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<div class="page-container">
<h1 class="fr-h1">Code de vérification</h2>
<div id="code-verification">
<h2 class="title-with-anchor fr-h3">
<span>Vous ne recevez pas le code de vérification</span>
<a
aria-label="Lien direct vers section Vous ne recevez pas le code de vérification"
class="fr-btn fr-btn--sm fr-icon-link fr-btn--tertiary-no-outline"
href="#code-verification"
></a>
</h3>
<p>Vous êtes peut-être dans l’une de ces situations :</p>
<ul>
<li class="fr-mb-3w">Votre code a expiré ou vous avez perdu l’email qui contenait le code<br>
💡 <b>
<form
class="inline-form" autocomplete="off"
action="/users/send-email-verification"
method="post"
>
<input type="hidden" name="_csrf" value="<%= csrfToken; %>" autocomplete="off">
<input
style="font-weight: bold;"
class="fr-link" type="submit"
value="Cliquez ici pour recevoir un nouveau code"
/>
</form>
</b>
</li>
<li class="fr-mb-3w">Vous avez fait une erreur de saisie dans votre adresse
<% if (locals.email) { %>
<span id="email-badge-lowercase" class="fr-badge fr-badge--info fr-badge--no-icon">
<%= email; %>
</span>
<% } else { %>
email
<% } %>
<br>
💡 <b>
<a class="fr-link" href="/users/start-sign-in" style="text-decoration: none;">
Recréez un compte avec la bonne adresse
</a>
</b>
</li>
<li class="fr-mb-3w">Le code est arrivé dans vos courriers indésirables<br>
💡 <b>Vérifiez vos spams</b>
</li>
<li class="fr-mb-3w">Votre organisation utilise une protection contre les spams (comme MailInBlack)<br>
💡<b> Contactez votre fournisseur de mail pour qu’il autorise les emails en provenance de
<i>[email protected]</i> (adresse IP : 172.246.41.163)
</b>
</li>
</ul>
<p>Vous n’êtes dans aucune de ces situations ?
<a
class="fr-link"
href="mailto:[email protected]?subject=Je%20ne%20re%C3%A7ois%20pas%20le%20code%20de%20verification"
>
Contactez-nous
</a>.
</p>
</div>
</div>

0 comments on commit 885972e

Please sign in to comment.