From 76e54de18215c8d3c0ea2c8bc959ed5e176ab786 Mon Sep 17 00:00:00 2001 From: Youssef Date: Fri, 7 Aug 2026 23:56:03 +0200 Subject: [PATCH] =?UTF-8?q?sec(licence):=20restriction=20de=20l'option=20e?= =?UTF-8?q?t=20de=20la=20visibilit=C3=A9=20r=C3=A9duction=20=C3=A9ducateur?= =?UTF-8?q?=20aux=20seuls=20administrateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/LicenceController.java | 21 +++++++++++++++---- .../resources/templates/adherents/form.html | 21 ++++++++++++------- .../parametrage/licences_recherche.html | 2 +- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java b/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java index 0301ee1..7d1aa91 100644 --- a/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java +++ b/as-talange-web/src/main/java/com/astalange/web/controller/LicenceController.java @@ -77,8 +77,13 @@ public class LicenceController { licence.setTypeDemande(typeDemande); licence.setTypeLicence(typeLicence); licence.setCommentaire(commentaire); - licence.setReductionEducateur(Boolean.TRUE.equals(reductionEducateur)); - licence.setPourcentageReductionEducateur(pourcentageReductionEducateur != null ? pourcentageReductionEducateur : 100); + if (isUserAdmin()) { + licence.setReductionEducateur(Boolean.TRUE.equals(reductionEducateur)); + licence.setPourcentageReductionEducateur(pourcentageReductionEducateur != null ? pourcentageReductionEducateur : 100); + } else { + licence.setReductionEducateur(false); + licence.setPourcentageReductionEducateur(100); + } if (equipeId != null) { Equipe equipe = equipeRepository.findById(equipeId) @@ -120,8 +125,10 @@ public class LicenceController { licence.setTypeDemande(typeDemande); licence.setTypeLicence(typeLicence); licence.setCommentaire(commentaire); - licence.setReductionEducateur(Boolean.TRUE.equals(reductionEducateur)); - licence.setPourcentageReductionEducateur(pourcentageReductionEducateur != null ? pourcentageReductionEducateur : 100); + if (isUserAdmin()) { + licence.setReductionEducateur(Boolean.TRUE.equals(reductionEducateur)); + licence.setPourcentageReductionEducateur(pourcentageReductionEducateur != null ? pourcentageReductionEducateur : 100); + } if (equipeId != null) { Equipe equipe = equipeRepository.findById(equipeId) @@ -270,4 +277,10 @@ public class LicenceController { return cb.and(predicates.toArray(new jakarta.persistence.criteria.Predicate[0])); }; } + + private boolean isUserAdmin() { + org.springframework.security.core.Authentication auth = org.springframework.security.core.context.SecurityContextHolder.getContext().getAuthentication(); + return auth != null && auth.getAuthorities().stream() + .anyMatch(a -> a.getAuthority().equals("ROLE_ADMIN") || a.getAuthority().equals("ADMIN")); + } } diff --git a/as-talange-web/src/main/resources/templates/adherents/form.html b/as-talange-web/src/main/resources/templates/adherents/form.html index d197332..8d6e4d7 100644 --- a/as-talange-web/src/main/resources/templates/adherents/form.html +++ b/as-talange-web/src/main/resources/templates/adherents/form.html @@ -273,15 +273,20 @@ th:text="${lic.etat}">Brouillon -
- Éducateur (-100%) -
- 150.00 € - 0.00 € +
+
+ Éducateur (-100%) +
+ 150.00 € + 0.00 € +
+
+
+ 130.00 €
-
+
130.00 €
@@ -579,7 +584,7 @@
-
+