From 0c4b88b5cde68e6df6d1429d38695bc91d0d2df5 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Wed, 2 Jul 2025 19:02:46 +0200 Subject: [PATCH] feat: add licence and user remove condition check --- .../titionfire/ffsaf/domain/service/LicenceService.java | 4 ++++ .../titionfire/ffsaf/domain/service/MembreService.java | 6 ++++++ src/main/webapp/src/pages/club/member/MemberPage.jsx | 9 +++++---- 3 files changed, 15 insertions(+), 4 deletions(-) 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 848aafe..6ac317d 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java @@ -112,6 +112,10 @@ public class LicenceService { public Uni deleteAskLicence(long id, Consumer checkPerm) { return repository.findById(id) .call(licenceModel -> Mutiny.fetch(licenceModel.getMembre()).invoke(checkPerm)) + .invoke(Unchecked.consumer(licenceModel -> { + if (licenceModel.isValidate()) + throw new DBadRequestException("Impossible de supprimer une licence déjà validée"); + })) .chain(__ -> Panache.withTransaction(() -> repository.deleteById(id))); } } diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java index 3dddf8a..f508c04 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java @@ -368,6 +368,12 @@ public class MembreService { if (!securityCtx.isInClubGroup(membreModel.getClub().getId())) throw new DForbiddenException(); })) + .invoke(Unchecked.consumer(membreModel -> { + if (membreModel.getLicence() != null) { + throw new DBadRequestException( + "Impossible de supprimer un membre qui a déjà un numéro de licence"); + } + })) .call(membreModel -> licenceRepository.find("membre = ?1", membreModel).count() .invoke(Unchecked.consumer(l -> { if (l > 0) diff --git a/src/main/webapp/src/pages/club/member/MemberPage.jsx b/src/main/webapp/src/pages/club/member/MemberPage.jsx index 7696952..7c21887 100644 --- a/src/main/webapp/src/pages/club/member/MemberPage.jsx +++ b/src/main/webapp/src/pages/club/member/MemberPage.jsx @@ -59,10 +59,11 @@ export function MemberPage() { -
- -
+ {data.licence == null && +
+ +
}