dev #74
@ -355,10 +355,16 @@ public class AffiliationService {
|
|||||||
.map(c -> club));
|
.map(c -> club));
|
||||||
})
|
})
|
||||||
.call(club -> reactiveMailer.send(
|
.call(club -> reactiveMailer.send(
|
||||||
Mail.withText(form.getM1_email(),
|
Mail.withHtml(form.getM1_email(), "FFSAF - Creation de votre compte sur l'intranet",
|
||||||
"FFSAF - Acceptation de votre demande d'affiliation",
|
String.format(Utils.HTML_HEADER, "FFSAF - Creation de votre compte sur l'intranet") +
|
||||||
String.format(
|
String.format("""
|
||||||
"""
|
<p>Votre demande d'affiliation pour le club <span class="highlight">%s</span> a été acceptée.</p>
|
||||||
|
<p>LLe numéro d'affiliation de votre club est le <span class="highlight">%d</span>.</p>
|
||||||
|
""",
|
||||||
|
club.getName(), club.getNo_affiliation()) +
|
||||||
|
Utils.HTML_FOOTER
|
||||||
|
)
|
||||||
|
.setText(String.format("""
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
Votre demande d'affiliation pour le club %s a été acceptée.
|
Votre demande d'affiliation pour le club %s a été acceptée.
|
||||||
@ -366,8 +372,8 @@ public class AffiliationService {
|
|||||||
|
|
||||||
Cordialement,
|
Cordialement,
|
||||||
L'équipe de la FFSAF
|
L'équipe de la FFSAF
|
||||||
""", club.getName(), club.getNo_affiliation())
|
""", club.getName(), club.getNo_affiliation()))
|
||||||
).setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("contact@ffsaf.fr")
|
.setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("contact@ffsaf.fr")
|
||||||
.addTo(form.getM2_email(), form.getM3_email())
|
.addTo(form.getM2_email(), form.getM3_email())
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -458,10 +464,16 @@ public class AffiliationService {
|
|||||||
public Uni<?> deleteReqAffiliation(long id, String reason, boolean federationAdmin) {
|
public Uni<?> deleteReqAffiliation(long id, String reason, boolean federationAdmin) {
|
||||||
return repositoryRequest.findById(id)
|
return repositoryRequest.findById(id)
|
||||||
.call(aff -> federationAdmin ? reactiveMailer.send(
|
.call(aff -> federationAdmin ? reactiveMailer.send(
|
||||||
Mail.withText(aff.getM1_email(),
|
Mail.withHtml(aff.getM1_email(), "FFSAF - Votre demande d'affiliation a été rejetée.",
|
||||||
"FFSAF - Votre demande d'affiliation a été rejetée.",
|
String.format(Utils.HTML_HEADER, "FFSAF - Votre demande d'affiliation a été rejetée.") +
|
||||||
String.format(
|
String.format("""
|
||||||
"""
|
<p>Votre demande d'affiliation pour le club %s a été rejetée pour la/les raison(s) suivante(s):<br/>%s</p>
|
||||||
|
<p>Si vous rencontrez un problème ou si vous avez des questions, n'hésitez pas à nous contacter à l'adresse <a href="mailto:contact@ffsaf.fr">contact@ffsaf.fr</a>.</p>
|
||||||
|
""",
|
||||||
|
aff.getName(), reason) +
|
||||||
|
Utils.HTML_FOOTER
|
||||||
|
)
|
||||||
|
.setText(String.format("""
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
Votre demande d'affiliation pour le club %s a été rejetée pour la/les raison(s) suivante(s):
|
Votre demande d'affiliation pour le club %s a été rejetée pour la/les raison(s) suivante(s):
|
||||||
@ -471,8 +483,8 @@ public class AffiliationService {
|
|||||||
|
|
||||||
Cordialement,
|
Cordialement,
|
||||||
L'équipe de la FFSAF
|
L'équipe de la FFSAF
|
||||||
""", aff.getName(), reason)
|
""", aff.getName(), reason))
|
||||||
).setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("contact@ffsaf.fr")
|
.setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("contact@ffsaf.fr")
|
||||||
.addTo(aff.getM2_email(), aff.getM3_email())
|
.addTo(aff.getM2_email(), aff.getM3_email())
|
||||||
) : Uni.createFrom().nullItem())
|
) : Uni.createFrom().nullItem())
|
||||||
.chain(aff -> Panache.withTransaction(() -> repositoryRequest.delete(aff)))
|
.chain(aff -> Panache.withTransaction(() -> repositoryRequest.delete(aff)))
|
||||||
|
|||||||
@ -156,10 +156,18 @@ public class KeycloakService {
|
|||||||
return oldEmail;
|
return oldEmail;
|
||||||
}).call(oldEmail -> oldEmail == null || !enabled_email ? Uni.createFrom().item("") :
|
}).call(oldEmail -> oldEmail == null || !enabled_email ? Uni.createFrom().item("") :
|
||||||
reactiveMailer.send(
|
reactiveMailer.send(
|
||||||
Mail.withText(oldEmail,
|
Mail.withHtml(oldEmail, "FFSAF - Changement de votre adresse email",
|
||||||
"FFSAF - Changement de votre adresse email",
|
String.format(Utils.HTML_HEADER, "FFSAF - Changement de votre adresse email") +
|
||||||
String.format(
|
String.format("""
|
||||||
"""
|
<p>Suite à la modification de votre adresse email fournie lors de votre (ré)inscription à la FFSAF,<br/>
|
||||||
|
vous allez recevoir dans les prochaines minutes un email de vérification de votre nouvelle adresse sur celle-ci.</p>
|
||||||
|
<p>Ancienne adresse email : <span class="highlight">%s</span><br/>Nouvelle adresse email : <span class="highlight">%s</span></p>
|
||||||
|
<p>Si vous n'avez pas demandé cette modification, veuillez contacter le support à l'adresse <a href="mailto:support@ffsaf.fr">support@ffsaf.fr</a>.</p>
|
||||||
|
""",
|
||||||
|
oldEmail, email) +
|
||||||
|
Utils.HTML_FOOTER
|
||||||
|
)
|
||||||
|
.setText(String.format("""
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
Suite à la modification de votre adresse email fournie lors de votre (ré)inscription à la FFSAF,
|
Suite à la modification de votre adresse email fournie lors de votre (ré)inscription à la FFSAF,
|
||||||
@ -172,8 +180,8 @@ public class KeycloakService {
|
|||||||
|
|
||||||
Cordialement,
|
Cordialement,
|
||||||
L'équipe de la FFSAF
|
L'équipe de la FFSAF
|
||||||
""", oldEmail, email)
|
""", oldEmail, email))
|
||||||
).setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("support@ffsaf.fr")
|
.setFrom("FFSAF <no-reply@ffsaf.fr>").setReplyTo("support@ffsaf.fr")
|
||||||
).onFailure().invoke(e -> LOGGER.error("Fail to send email", e)));
|
).onFailure().invoke(e -> LOGGER.error("Fail to send email", e)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,72 +278,10 @@ public class KeycloakService {
|
|||||||
.invoke(user -> membreModel.setUserId(user.getId()))
|
.invoke(user -> membreModel.setUserId(user.getId()))
|
||||||
.call(user -> updateRole(user.getId(), List.of("safca_user"), List.of()))
|
.call(user -> updateRole(user.getId(), List.of("safca_user"), List.of()))
|
||||||
.call(user -> enabled_email ? reactiveMailer.send(
|
.call(user -> enabled_email ? reactiveMailer.send(
|
||||||
Mail.withHtml(user.getEmail(), "FFSAF - Creation de votre compte sur l'intranet", String.format(
|
Mail.withHtml(user.getEmail(), "FFSAF - Creation de votre compte sur l'intranet",
|
||||||
|
String.format(Utils.HTML_HEADER, "Création de votre compte intranet FFSAF") +
|
||||||
|
String.format(
|
||||||
"""
|
"""
|
||||||
<!DOCTYPE html>
|
|
||||||
<html data-lt-installed="true">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>Création de votre compte intranet FFSAF</title>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
line-height: 1.6;
|
|
||||||
color: #333;
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
background-color: #003366;
|
|
||||||
color: white;
|
|
||||||
padding: 20px;
|
|
||||||
text-align: center;
|
|
||||||
border-radius: 5px 5px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
padding: 20px;
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
border-radius: 0 0 5px 5px;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
border-top: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 10px 20px;
|
|
||||||
background-color: #003366;
|
|
||||||
color: white !important;
|
|
||||||
text-decoration: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin: 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
margin-top: 20px;
|
|
||||||
font-size: 0.9em;
|
|
||||||
color: #666;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.highlight {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #003366;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body data-gramm="false" data-lt-tmp-id="lt-957854">
|
|
||||||
<div class="header">
|
|
||||||
<div><img src="https://intra.ffsaf.fr/Logo-FFSAF-2023.png" alt="ffsaf" height="128">
|
|
||||||
<h1>Fédération France Soft Armored Fighting</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="content">
|
|
||||||
<p>Bonjour,</p>
|
|
||||||
<p>Suite à votre première inscription <span class="highlight">%s</span> à la <strong>Fédération France Soft Armored Fighting (FFSAF)</strong>, votre compte intranet a été créé.</p>
|
<p>Suite à votre première inscription <span class="highlight">%s</span> à la <strong>Fédération France Soft Armored Fighting (FFSAF)</strong>, votre compte intranet a été créé.</p>
|
||||||
<p>Ce compte vous permettra de :</p>
|
<p>Ce compte vous permettra de :</p>
|
||||||
<ul>
|
<ul>
|
||||||
@ -349,14 +295,10 @@ public class KeycloakService {
|
|||||||
<p>Pour définir votre mot de passe, rendez-vous sur l’intranet : <strong>Connexion > Mot de passe oublié ?</strong></p>
|
<p>Pour définir votre mot de passe, rendez-vous sur l’intranet : <strong>Connexion > Mot de passe oublié ?</strong></p>
|
||||||
<p>Si vous n’avez pas demandé cette inscription, veuillez contacter le support à l’adresse : <a href="mailto:support@ffsaf.fr">support@ffsaf.fr</a>.</p>
|
<p>Si vous n’avez pas demandé cette inscription, veuillez contacter le support à l’adresse : <a href="mailto:support@ffsaf.fr">support@ffsaf.fr</a>.</p>
|
||||||
<p class="footer">(Pas de panique, nous ne vous enverrons pas de message autre que ceux concernant votre compte.)</p>
|
<p class="footer">(Pas de panique, nous ne vous enverrons pas de message autre que ceux concernant votre compte.)</p>
|
||||||
<p>Cordialement,<br>L’équipe de la FFSAF</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
""",
|
""",
|
||||||
membreModel.getRole() == RoleAsso.MEMBRE ? "par votre club (" + membreModel.getClub()
|
membreModel.getRole() == RoleAsso.MEMBRE ? "par votre club (" + membreModel.getClub()
|
||||||
.getName() + ") " : "", user.getUsername())
|
.getName() + ") " : "", user.getUsername()) +
|
||||||
|
Utils.HTML_FOOTER
|
||||||
)
|
)
|
||||||
.setText(String.format(
|
.setText(String.format(
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -21,6 +21,79 @@ import java.util.concurrent.Future;
|
|||||||
public class Utils {
|
public class Utils {
|
||||||
private static final Logger LOGGER = Logger.getLogger(Utils.class);
|
private static final Logger LOGGER = Logger.getLogger(Utils.class);
|
||||||
|
|
||||||
|
public static String HTML_HEADER = """
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html data-lt-installed="true">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>%s</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #333;
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
background-color: #003366;
|
||||||
|
color: white;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 5px 5px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
border-radius: 0 0 5px 5px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 10px 20px;
|
||||||
|
background-color: #003366;
|
||||||
|
color: white !important;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
margin-top: 20px;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: #666;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #003366;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body data-gramm="false" data-lt-tmp-id="lt-957854">
|
||||||
|
<div class="header">
|
||||||
|
<div><img src="https://intra.ffsaf.fr/Logo-FFSAF-2023.png" alt="ffsaf" height="128">
|
||||||
|
<h1>Fédération France Soft Armored Fighting</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<p>Bonjour,</p>
|
||||||
|
""";
|
||||||
|
public static String HTML_FOOTER = """
|
||||||
|
<p>Cordialement,<br>L’équipe de la FFSAF</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
""";
|
||||||
|
|
||||||
public static int getSaison() {
|
public static int getSaison() {
|
||||||
return getSaison(new Date());
|
return getSaison(new Date());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user