dev #9
5
pom.xml
5
pom.xml
@ -134,6 +134,11 @@
|
|||||||
<artifactId>fop</artifactId>
|
<artifactId>fop</artifactId>
|
||||||
<version>2.6</version>
|
<version>2.6</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.quarkus</groupId>
|
||||||
|
<artifactId>quarkus-mailer</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import fr.titionfire.ffsaf.data.model.ClubModel;
|
|||||||
import fr.titionfire.ffsaf.data.model.MembreModel;
|
import fr.titionfire.ffsaf.data.model.MembreModel;
|
||||||
import fr.titionfire.ffsaf.rest.exception.DInternalError;
|
import fr.titionfire.ffsaf.rest.exception.DInternalError;
|
||||||
import fr.titionfire.ffsaf.utils.*;
|
import fr.titionfire.ffsaf.utils.*;
|
||||||
|
import io.quarkus.mailer.Mail;
|
||||||
|
import io.quarkus.mailer.reactive.ReactiveMailer;
|
||||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||||
import io.smallrye.mutiny.Uni;
|
import io.smallrye.mutiny.Uni;
|
||||||
import io.smallrye.mutiny.unchecked.Unchecked;
|
import io.smallrye.mutiny.unchecked.Unchecked;
|
||||||
@ -45,6 +47,9 @@ public class KeycloakService {
|
|||||||
@ConfigProperty(name = "email.enabled")
|
@ConfigProperty(name = "email.enabled")
|
||||||
boolean enabled_email;
|
boolean enabled_email;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ReactiveMailer reactiveMailer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
Vertx vertx;
|
Vertx vertx;
|
||||||
|
|
||||||
@ -115,6 +120,7 @@ public class KeycloakService {
|
|||||||
return vertx.getOrCreateContext().executeBlocking(() -> {
|
return vertx.getOrCreateContext().executeBlocking(() -> {
|
||||||
UserResource user = keycloak.realm(realm).users().get(userId);
|
UserResource user = keycloak.realm(realm).users().get(userId);
|
||||||
UserRepresentation user2 = user.toRepresentation();
|
UserRepresentation user2 = user.toRepresentation();
|
||||||
|
String oldEmail = user2.getEmail();
|
||||||
if (email.equals(user2.getEmail()))
|
if (email.equals(user2.getEmail()))
|
||||||
return "";
|
return "";
|
||||||
user2.setEmail(email);
|
user2.setEmail(email);
|
||||||
@ -122,8 +128,28 @@ public class KeycloakService {
|
|||||||
user.update(user2);
|
user.update(user2);
|
||||||
if (enabled_email)
|
if (enabled_email)
|
||||||
user.sendVerifyEmail();
|
user.sendVerifyEmail();
|
||||||
return "";
|
return oldEmail;
|
||||||
});
|
}).call(oldEmail -> oldEmail == null || !enabled_email ? Uni.createFrom().item("") :
|
||||||
|
reactiveMailer.send(
|
||||||
|
Mail.withText(oldEmail,
|
||||||
|
"FFSAF - Changement de votre adresse email",
|
||||||
|
String.format(
|
||||||
|
"""
|
||||||
|
Bonjour,
|
||||||
|
|
||||||
|
Suite à la modification de votre adresse email fournie lors de votre (ré)inscription à la FFSAF,
|
||||||
|
vous allez recevoir dans les prochaines minutes un email de vérification de votre nouvelle adresse sur celle-ci.
|
||||||
|
|
||||||
|
Ancienne adresse email : %s
|
||||||
|
Nouvelle adresse email : %s
|
||||||
|
|
||||||
|
Si vous n'avez pas demandé cette modification, veuillez contacter le support à l'adresse support@ffsaf.fr.
|
||||||
|
|
||||||
|
Cordialement,
|
||||||
|
L'équipe de la FFSAF
|
||||||
|
""", oldEmail, email)
|
||||||
|
).setFrom("no-reply@ffsaf.fr").setReplyTo("support@ffsaf.fr")
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Uni<?> setAutoRoleMembre(String id, RoleAsso role, GradeArbitrage gradeArbitrage) {
|
public Uni<?> setAutoRoleMembre(String id, RoleAsso role, GradeArbitrage gradeArbitrage) {
|
||||||
@ -228,6 +254,29 @@ public class KeycloakService {
|
|||||||
return null;
|
return null;
|
||||||
}) : Uni.createFrom().nullItem())
|
}) : Uni.createFrom().nullItem())
|
||||||
.invoke(user -> membreModel.setUserId(user.getId()))
|
.invoke(user -> membreModel.setUserId(user.getId()))
|
||||||
|
.call(user -> enabled_email ? reactiveMailer.send(
|
||||||
|
Mail.withText(user.getEmail(),
|
||||||
|
"FFSAF - Creation de votre compte sur l'intranet",
|
||||||
|
String.format(
|
||||||
|
"""
|
||||||
|
Bonjour,
|
||||||
|
|
||||||
|
Suite à votre première inscription à la Fédération Française de Soft Armored Fighting (FFSAF), votre compte pour accéder à l'intranet a été créé.
|
||||||
|
Ce compte vous permettra de consulter vos informations, de vous inscrire aux compétitions et de consulter vos résultats.
|
||||||
|
|
||||||
|
Vous allez recevoir dans les prochaines minutes un email vous demandant de vérifier votre email et de définir un mot de passe.
|
||||||
|
|
||||||
|
L'intranet est accessible à l'adresse suivante : https://intra.ffsaf.fr
|
||||||
|
Votre nom d'utilisateur est : %s
|
||||||
|
|
||||||
|
Si vous n'avez pas demandé cette inscription, veuillez contacter le support à l'adresse support@ffsaf.fr.
|
||||||
|
(Pas de panique, nous ne vous enverrons pas de message autre que ce concernant votre compte)
|
||||||
|
|
||||||
|
Cordialement,
|
||||||
|
L'équipe de la FFSAF
|
||||||
|
""", user.getUsername())
|
||||||
|
).setFrom("no-reply@ffsaf.fr").setReplyTo("support@ffsaf.fr")
|
||||||
|
) : Uni.createFrom().nullItem())
|
||||||
.call(user -> membreService.setUserId(membreModel.getId(), user.getId()))
|
.call(user -> membreService.setUserId(membreModel.getId(), user.getId()))
|
||||||
.call(user -> setClubGroupMembre(membreModel, membreModel.getClub()));
|
.call(user -> setClubGroupMembre(membreModel, membreModel.getClub()));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user