Skip to content

Commit 29b6e7e

Browse files
feat: lbac 2428: mise a jour de templates d email (#1483)
* feat: lbac 2428: mise a jour de templates d email * fix: commentaire
1 parent 165ecde commit 29b6e7e

File tree

5 files changed

+517
-147
lines changed

5 files changed

+517
-147
lines changed

server/src/http/controllers/login.controller.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export default (server: Server) => {
7676
data: {
7777
images: {
7878
logoLba: `${config.publicUrl}/images/emails/logo_LBA.png?raw=true`,
79+
logoRf: `${config.publicUrl}/images/emails/logo_rf.png?raw=true`,
7980
},
8081
last_name: sanitizeForEmail(removeUrlsFromText(last_name)),
8182
first_name: sanitizeForEmail(removeUrlsFromText(first_name)),

server/src/http/controllers/user.controller.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,14 +307,21 @@ export default (server: Server) => {
307307
}
308308
)
309309

310-
const { email, last_name, first_name } = user
311-
312310
const newEvent = getLastStatusEvent(updatedRole.status)
313311
if (!newEvent) {
314312
throw internal("inattendu : aucun event sauvegardé")
315313
}
316314
// if user is disabled, return the user data directly
317315
if (newEvent.status === AccessStatus.DENIED) {
316+
const organization =
317+
updatedRole.authorized_type === AccessEntityType.CFA
318+
? await getDbCollection("cfas").findOne({ _id: new ObjectId(updatedRole.authorized_id) })
319+
: await getDbCollection("entreprises").findOne({ _id: new ObjectId(updatedRole.authorized_id) })
320+
if (!organization) {
321+
throw internal("/user/:userId/organization/:organizationId/permission: inattendu: organization introuvable")
322+
}
323+
const { email, last_name, first_name, phone } = user
324+
const { siret, raison_sociale } = organization
318325
// send email to user to notify him his account has been disabled
319326
await mailer.sendEmail({
320327
to: email,
@@ -324,10 +331,15 @@ export default (server: Server) => {
324331
images: {
325332
accountDisabled: `${config.publicUrl}/images/image-compte-desactive.png?raw=true`,
326333
logoLba: `${config.publicUrl}/images/emails/logo_LBA.png?raw=true`,
334+
logoRf: `${config.publicUrl}/images/emails/logo_rf.png?raw=true`,
327335
},
328336
last_name: sanitizeForEmail(last_name),
329337
first_name: sanitizeForEmail(first_name),
330338
reason: sanitizeForEmail(newEvent.reason),
339+
email,
340+
siret: sanitizeForEmail(siret),
341+
raison_sociale: sanitizeForEmail(raison_sociale),
342+
phone: sanitizeForEmail(phone),
331343
emailSupport: "mailto:[email protected]?subject=Compte%20pro%20non%20validé",
332344
},
333345
})
Lines changed: 230 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,237 @@
11
<mjml>
22
<mj-head>
3-
<mj-title>Votre compte a été désactivé sur La bonne alternance</mj-title>
4-
<mj-font name="Work Sans" href="https://fonts.googleapis.com/css2?family=Work+Sans:wght@400;700&display=swap"></mj-font>
5-
<mj-style inline="inline">.grey {color: #1E1E1E;}</mj-style>
3+
<mj-preview></mj-preview>
4+
<mj-breakpoint width="480px"></mj-breakpoint>
65
<mj-attributes>
7-
<mj-text color="#242424" font-family="Work Sans, Arial" font-size="16px" line-height="24px"></mj-text>
8-
<mj-button font-size="16px" line-height="24px" padding="8px 24px" font-family="Work Sans" height="40px"></mj-button>
6+
<mj-all padding="0"></mj-all>
97
</mj-attributes>
8+
<mj-style>
9+
@media only screen and (max-width: 799px) {
10+
.text > div {
11+
text-align: inherit !important;
12+
}
13+
14+
.wrapper > table > tbody > tr > td {
15+
padding-left: 0px !important;
16+
padding-right: 0px !important;
17+
}
18+
19+
.section > table > tbody > tr > td {
20+
padding-left: 20px !important;
21+
padding-right: 20px !important;
22+
}
23+
24+
.column > table > tbody > tr > td {
25+
padding-left: 0px !important;
26+
padding-right: 0px !important;
27+
}
28+
29+
.padB40 {
30+
padding-bottom: 40px !important;
31+
}
32+
33+
.image {
34+
padding-left: 0px !important;
35+
padding-right: 0px !important;
36+
}
37+
38+
.image > table {
39+
text-align: center !important;
40+
margin: 0 auto !important;
41+
}
42+
43+
.divider {
44+
padding-left: 0px !important;
45+
padding-right: 0px !important;
46+
}
47+
48+
.button > table {
49+
width: 100% !important;
50+
}
51+
52+
.button > table > tbody > tr > td > a {
53+
width: 80% !important;
54+
}
55+
}
56+
</mj-style>
57+
<mj-style inline="inline">
58+
.column > table { border-collapse: separate; }
59+
</mj-style>
60+
<mj-font href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400&display=swap" name="DM Sans"></mj-font>
61+
<mj-font href="https://fonts.googleapis.com/css2?family=Public+Sans:wght@700&display=swap" name="Public Sans"></mj-font>
1062
</mj-head>
11-
<mj-body background-color="#F5F5FE">
12-
<mj-section>
13-
<mj-column>
14-
<mj-image src="<%= data.images.logoLba %>" width="150px" alt="Logo du site La bonne alternance"></mj-image>
15-
</mj-column>
16-
</mj-section>
17-
<mj-section background-color="#FFFFFF" border-radius="4px" border="1px solid #FFFFFF" padding="20px 5px">
18-
<mj-column>
19-
<mj-image src="<%= data.images.accountDisabled %>" alt="image compte désactivé"></mj-image>
20-
</mj-column>
21-
<mj-column>
22-
<mj-text>Bonjour <%= data.first_name %> <%= data.last_name %>,</mj-text>
23-
<mj-text>Votre compte n'a pas pu être validé pour la raison suivante :</mj-text>
24-
<mj-text container-background-color="#f6f6f6" padding-rigth="10px"><%= data.reason %></mj-text>
25-
</mj-column>
26-
</mj-section>
27-
<mj-section> </mj-section>
28-
<mj-section background-color="#FFFFFF" border-radius="4px" border="1px solid #FFFFFF" padding="20px 10px">
29-
<mj-column>
30-
<mj-text>Vous pouvez contacter notre support pour plus d’information en communiquant l’email utilisé lors de la création de votre compte.</mj-text>
31-
<mj-button color="#ffffff" background-color="#000091" href="<%= data.emailSupport %>"> Contacter le support </mj-button>
32-
</mj-column>
33-
</mj-section>
34-
<mj-section>
35-
<mj-column>
36-
<mj-image src="https://labonnealternance.apprentissage.beta.gouv.fr/assets/logo-republique-francaise.png" width="200px" align="left"></mj-image>
37-
</mj-column>
38-
</mj-section>
63+
<mj-body background-color="#f5f5fe" name="Compte désactivé" width="800px">
64+
<mj-wrapper border-radius="0px" css-class="wrapper" padding="32px 100px 32px 100px">
65+
<mj-section border-radius="0px" css-class="section" name="mj-section_group">
66+
<mj-group>
67+
<mj-column border-radius="0px" css-class="column" vertical-align="middle" width="14.83%">
68+
<mj-image align="left" alt="Image" css-class="image" href="#" src="<%= data.images.logoRf %>" width="89px">
69+
70+
</mj-image>
71+
</mj-column>
72+
<mj-column border-radius="0px" css-class="column" padding="0px 24px 0px 24px" vertical-align="middle" width="34.83%">
73+
<mj-image align="left" alt="Image" css-class="image" href="#" padding="17px 0px 17px 0px" src="<%= data.images.logoLba %>" width="160px">
74+
75+
</mj-image>
76+
</mj-column>
77+
<mj-column border-radius="0px" css-class="column" vertical-align="top" width="50.33%">
78+
79+
</mj-column>
80+
</mj-group>
81+
</mj-section>
82+
<mj-spacer height="24px">
83+
84+
</mj-spacer>
85+
<mj-section background-color="#ffffff" border-radius="4px" border="1px solid #e3e3fd" css-class="section" name="mj-section_group" padding="23px 22px 23px 22px">
86+
<mj-group>
87+
<mj-column border-radius="0px" css-class="column" vertical-align="middle" width="99.64%">
88+
<mj-text align="left" color="#000091" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="20px" font-weight="700" line-height="22px" padding="0px 0px 12px 0px">
89+
Votre compte a été désactivé
90+
<br/>
91+
</mj-text>
92+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 12px 0px">
93+
Bonjour <%= data.first_name %> <%= data.last_name %>,
94+
<br/>
95+
</mj-text>
96+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 12px 0px">
97+
Votre compte La bonne alternance n’a pas pu être validé pour la raison suivante :
98+
<br/>
99+
</mj-text>
100+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="24px" padding="0px 0px 0px 0px">
101+
<%= data.reason %>
102+
<br/>
103+
</mj-text>
104+
</mj-column>
105+
</mj-group>
106+
</mj-section>
107+
<mj-spacer height="24px">
108+
109+
</mj-spacer>
110+
<mj-section background-color="#ffffff" border-radius="4px" border="1px solid #e3e3fd" css-class="section" name="mj-section_group" padding="23px 23px 23px 23px">
111+
<mj-group>
112+
<mj-text align="left" color="#000091" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="18px" padding="24px 0px 0px 0px">
113+
Compte concerné
114+
<br/>
115+
</mj-text>
116+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
117+
118+
</mj-spacer>
119+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
120+
SIRET :
121+
<br/>
122+
</mj-text>
123+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="24px" padding="0px 0px 0px 0px">
124+
<%= data.siret %>
125+
<br/>
126+
</mj-text>
127+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
128+
129+
</mj-spacer>
130+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
131+
Raison sociale de l’entreprise :
132+
<br/>
133+
</mj-text>
134+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="24px" padding="0px 0px 0px 0px">
135+
<%= data.raison_sociale %>
136+
<br/>
137+
</mj-text>
138+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
139+
140+
</mj-spacer>
141+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
142+
Email :
143+
<br/>
144+
</mj-text>
145+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="24px" padding="0px 0px 0px 0px">
146+
<%= data.email %>
147+
<br/>
148+
</mj-text>
149+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
150+
151+
</mj-spacer>
152+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
153+
Téléphone :
154+
<br/>
155+
</mj-text>
156+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="700" line-height="24px" padding="0px 0px 24px 0px">
157+
<%= data.phone %>
158+
<br/>
159+
</mj-text>
160+
</mj-group>
161+
</mj-section>
162+
<mj-spacer height="24px">
163+
164+
</mj-spacer>
165+
<mj-section background-color="#ffffff" border-radius="4px" border="1px solid #e3e3fd" css-class="section" name="mj-section_group" padding="23px 23px 23px 23px">
166+
<mj-group>
167+
<mj-text align="left" color="#000091" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="20px" font-weight="700" line-height="22px" padding="24px 0px 0px 0px">
168+
Pourquoi nous vérifions les comptes de nos utilisateurs ?
169+
<br/>
170+
</mj-text>
171+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
172+
173+
</mj-spacer>
174+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
175+
La bonne alternance est un service public qui s’adresse aux étudiants. À ce titre, nous nous assurons de la validité des informations diffusées par les entreprises et les organismes de formation.
176+
<br/>
177+
</mj-text>
178+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
179+
180+
</mj-spacer>
181+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
182+
Si les coordonnées que vous renseignez à la création de votre compte sont connues de nos bases de données, alors votre compte est automatiquement validé. Dans le cas inverse, nous prenons le temps de vérifier manuellement vos informations.
183+
<br/>
184+
</mj-text>
185+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
186+
187+
</mj-spacer>
188+
<mj-text align="left" color="#161616" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="16px" font-weight="400" line-height="24px" padding="0px 0px 0px 0px">
189+
Vous pouvez contacter notre équipe support pour plus d’information en communiquant l’email utilisé lors de la création de votre compte.
190+
<br/>
191+
</mj-text>
192+
<mj-spacer height="24px" padding="0px 24px 0px 24px">
193+
194+
</mj-spacer>
195+
<mj-column border-radius="0px" css-class="column" padding="0px 194px 0px 194px" vertical-align="middle" width="99.64%">
196+
<mj-button align="center" background-color="transparent" border-radius="0px" border="1px solid #000091" color="#000091" css-class="button" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="14px" font-weight="700" href="mailto:[email protected]?subject=Recruteur%20-%20Demande%20information" inner-padding="4px 0px 4px 0px" line-height="24px" padding="10px 0px 10px 0px" width="163px">
197+
Contacter le support
198+
</mj-button>
199+
</mj-column>
200+
</mj-group>
201+
</mj-section>
202+
<mj-spacer height="24px">
203+
204+
</mj-spacer>
205+
<mj-section border-radius="4px" css-class="section" name="mj-section_group">
206+
<mj-group>
207+
<mj-column border-radius="0px" css-class="column" vertical-align="middle" width="100%">
208+
<mj-text align="left" color="#666666" css-class="text" font-family="Arial, Helvetica, Verdana, sans-serif" font-size="14px" font-weight="400" line-height="24px">
209+
Ce courriel est généré automatiquement, vous ne pouvez pas y répondre.
210+
<br/>Pour toute question, consultez notre <a href="https://labonnealternance.apprentissage.beta.gouv.fr/faq#recruteur" style="text-decoration: underline; color: inherit;">FAQ</a> ou écrivez-nous à <a href="mailto:[email protected]" style="text-decoration: underline; color: inherit;">[email protected]</a>
211+
<br/>
212+
</mj-text>
213+
</mj-column>
214+
</mj-group>
215+
</mj-section>
216+
<mj-spacer height="24px">
217+
218+
</mj-spacer>
219+
<mj-section border-radius="4px" css-class="section" name="mj-section_group">
220+
<mj-group>
221+
<mj-column border-radius="0px" css-class="column" vertical-align="middle" width="100%">
222+
<mj-text align="left" color="#666666" css-class="text" font-family="DM Sans, Times, Georgia, serif" font-size="14px" font-weight="400" line-height="24px">
223+
<span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">La bonne alternance est un site développé par la Mission interministérielle pour l'apprentissage, au sein de l’État, conformément aux missions d’intérêt public du ministère du Travail, du Plein emploi et de l’Insertion.
224+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">
225+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">Nous vous contactons car votre compte a été désactivé par un administrateur de plateforme ou un référent OPCO.
226+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">
227+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">Nous ne faisons aucune utilisation commerciale de vos adresses e-mail. Vous bénéficiez d’un droit d’opposition que vous pouvez utiliser à tout moment via l’adresse </span><a href="mailto:[email protected]?subject=Droit%20opposition" style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400; text-decoration: underline; color: inherit;">[email protected]</a><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">
228+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">
229+
</span><br/><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;">Si vos droits ne sont pas respectés, vous pouvez à tout moment introduire une réclamation auprès de la CNIL. Pour plus d’informations sur le traitement de vos données, vous pouvez vous rendre sur la </span><a href="https://labonnealternance.apprentissage.beta.gouv.fr/politique-de-confidentialite" style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400; text-decoration: underline; color: inherit;">politique de confidentialité</a><span style="font-family: Arial, Helvetica, Verdana, sans-serif; font-weight: 400;"> de La bonne alternance.</span>
230+
<br/>
231+
</mj-text>
232+
</mj-column>
233+
</mj-group>
234+
</mj-section>
235+
</mj-wrapper>
39236
</mj-body>
40237
</mjml>

0 commit comments

Comments
 (0)