diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/ClubService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/ClubService.java index d5ae83d..f6e91a0 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/ClubService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/ClubService.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import fr.titionfire.ffsaf.data.model.AffiliationModel; import fr.titionfire.ffsaf.data.model.ClubModel; import fr.titionfire.ffsaf.data.model.MembreModel; +import fr.titionfire.ffsaf.data.repository.AffiliationRepository; import fr.titionfire.ffsaf.data.repository.ClubRepository; import fr.titionfire.ffsaf.data.repository.CombRepository; import fr.titionfire.ffsaf.net2.ServerCustom; @@ -44,6 +45,9 @@ public class ClubService { @Inject ClubRepository repository; + @Inject + AffiliationRepository affiliationRepository; + @Inject ServerCustom serverCustom; @@ -234,7 +238,8 @@ public class ClubService { } return Panache.withTransaction(() -> repository.persist(m)).call(() -> ls.append()); })) - .call(clubModel -> nameChange.get() ? keycloakService.updateGroupFromClub(clubModel) // update group in keycloak + .call(clubModel -> nameChange.get() ? keycloakService.updateGroupFromClub( + clubModel) // update group in keycloak : Uni.createFrom().nullItem()) .invoke(membreModel -> SReqClub.sendIfNeed(serverCustom.clients, SimpleClubModel.fromModel(membreModel))) @@ -323,9 +328,11 @@ public class ClubService { } public Uni> getMapData() { - return repository.list("international", false).toMulti().flatMap(list -> Multi.createFrom().iterable(list)) - .call(clubModel -> Mutiny.fetch(clubModel.getContact())) - .map(clubModel -> { + return affiliationRepository.list("saison >= ?1 AND club.international = ?2", Utils.getSaison() - 1, false) + .toMulti().flatMap(list -> Multi.createFrom().iterable(list)) + .call(affiliationModel -> Mutiny.fetch(affiliationModel.getClub().getContact())) + .map(affiliationModel -> { + ClubModel clubModel = affiliationModel.getClub(); ClubMapData data = new ClubMapData(); data.setName(clubModel.getName()); diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/KeycloakService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/KeycloakService.java index 1ab62dc..99cce5b 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/KeycloakService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/KeycloakService.java @@ -270,9 +270,95 @@ public class KeycloakService { .invoke(user -> membreModel.setUserId(user.getId())) .call(user -> updateRole(user.getId(), List.of("safca_user"), List.of())) .call(user -> enabled_email ? reactiveMailer.send( - Mail.withText(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( + """ + + + + + + Création de votre compte intranet FFSAF + + + + +
+
ffsaf +

Fédération France Soft Armored Fighting

+
+
+
+

Bonjour,

+

Suite à votre première inscription %s à la Fédération France Soft Armored Fighting (FFSAF), votre compte intranet a été créé.

+

Ce compte vous permettra de :

+ +

L’intranet est accessible à l’adresse suivante :

+

Accéder à l'intranet

+

Votre nom d’utilisateur est : %s

+

Pour définir votre mot de passe, rendez-vous sur l’intranet : Connexion > Mot de passe oublié ?

+

Si vous n’avez pas demandé cette inscription, veuillez contacter le support à l’adresse : support@ffsaf.fr.

+ +

Cordialement,
L’équipe de la FFSAF

+
+ + + + """, + membreModel.getRole() == RoleAsso.MEMBRE ? "par votre club (" + membreModel.getClub() + .getName() + ") " : "", user.getUsername()) + ) + .setText(String.format( """ Bonjour, @@ -291,8 +377,8 @@ public class KeycloakService { L'équipe de la FFSAF """, membreModel.getRole() == RoleAsso.MEMBRE ? "par votre club (" + membreModel.getClub() - .getName() + ") " : "", user.getUsername()) - ).setFrom("FFSAF ").setReplyTo("support@ffsaf.fr") + .getName() + ") " : "", user.getUsername())) + .setFrom("FFSAF ").setReplyTo("support@ffsaf.fr") ) : Uni.createFrom().nullItem()) .call(user -> membreService.setUserId(membreModel.getId(), user.getId())) .call(user -> setClubGroupMembre(membreModel, membreModel.getClub())); diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java index c6c0c86..83e9f90 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java @@ -177,7 +177,7 @@ public class LicenceService { "Impossible de supprimer une licence pour laquelle un paiement est en cours"); }))) .call(model -> ls.logADelete(model)) - .chain(model -> repository.delete(model)); + .chain(model -> Panache.withTransaction(() -> repository.delete(model))); } public Uni askLicence(long id, LicenceForm form, Consumer checkPerm) { diff --git a/src/main/webapp/public/Logo-FFSAF-2023.png b/src/main/webapp/public/Logo-FFSAF-2023.png new file mode 100644 index 0000000..d44c9ce Binary files /dev/null and b/src/main/webapp/public/Logo-FFSAF-2023.png differ