From be74b380516aa960c1f2aedb27e5057f64caabdd Mon Sep 17 00:00:00 2001
From: fatima ezzahra majidi <fatima-ezzahra.majidi.etu@univ-lille.fr>
Date: Fri, 7 Mar 2025 13:43:51 +0000
Subject: [PATCH] Ajout de commentaire

---
 .../gestionstagesbackend/config/SecurityConfig.java  |  4 ++--
 .../controllers/CandidacyController.java             |  6 ++++++
 .../gestionstagesbackend/model/Candidacy.java        | 12 ++++++++++++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/example/gestionstagesbackend/config/SecurityConfig.java b/src/main/java/com/example/gestionstagesbackend/config/SecurityConfig.java
index 9938c2a..7b9cf03 100644
--- a/src/main/java/com/example/gestionstagesbackend/config/SecurityConfig.java
+++ b/src/main/java/com/example/gestionstagesbackend/config/SecurityConfig.java
@@ -43,8 +43,8 @@ public class SecurityConfig {
                         .requestMatchers("/**").permitAll()
 
                         // Role-based access
-                        // STUDENTS (ETUDIANTS) - Can ONLY View Students & Stages
-                        .requestMatchers(HttpMethod.GET, "/api/students").hasAuthority("ROLE_ETUDIANT")
+                        // STUDENTS (ETUDIANTS) - Can ONLY View Stages
+                        .requestMatchers(HttpMethod.GET, "/api/stages/**").hasAuthority("ROLE_ETUDIANT")
                         .requestMatchers(HttpMethod.GET, "/api/stages").hasAuthority("ROLE_ETUDIANT")
 
                         // ENTERPRISES - Can CRUD Stages but NOT Students
diff --git a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
index 99034d7..933e4a7 100644
--- a/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
+++ b/src/main/java/com/example/gestionstagesbackend/controllers/CandidacyController.java
@@ -66,6 +66,9 @@ public class CandidacyController {
         candidacy.setStudent(student.get());
         candidacy.setStage(stage.get());
         univSupervisor.ifPresent(candidacy::setUnivSupervisor);
+        if (candidacy.getComment() == null) {
+            candidacy.setComment(""); // Valeur par défaut si vide
+        }
 
         Candidacy savedCandidacy = candidacyService.saveCandidacy(candidacy);
         return ResponseEntity.ok(savedCandidacy);
@@ -136,6 +139,9 @@ public class CandidacyController {
         if (updatedCandidacy.getAcceptedState() != null) {
             candidacy.setAcceptedState(updatedCandidacy.getAcceptedState());
         }
+        if (updatedCandidacy.getComment() != null) {
+            candidacy.setComment(updatedCandidacy.getComment());
+        }
 
         // Save the updated candidacy
         Candidacy savedCandidacy = candidacyService.saveCandidacy(candidacy);
diff --git a/src/main/java/com/example/gestionstagesbackend/model/Candidacy.java b/src/main/java/com/example/gestionstagesbackend/model/Candidacy.java
index 3b6d293..9f8b90a 100644
--- a/src/main/java/com/example/gestionstagesbackend/model/Candidacy.java
+++ b/src/main/java/com/example/gestionstagesbackend/model/Candidacy.java
@@ -36,6 +36,9 @@ public class Candidacy {
     // Enum to store the accepted candidacy state (wait, inProgress, terminated)
     @Enumerated(EnumType.STRING)
     private AcceptedCandidacyStateKind acceptedState = AcceptedCandidacyStateKind.wait;
+    // Ajout du champ commentaire
+    @Column(length = 500) // Définit une longueur max
+    private String comment;
 
     public Candidacy() {}
 
@@ -45,6 +48,7 @@ public class Candidacy {
         this.univSupervisor = univSupervisor;
         this.requestState = CandidacyRequestState.FirstRequest; // Default state
         this.acceptedState = AcceptedCandidacyStateKind.wait;  // Default state
+        this.comment = comment;
     }
 
     public Long getId() { return id; }
@@ -65,4 +69,12 @@ public class Candidacy {
     public AcceptedCandidacyStateKind getAcceptedState() { return acceptedState; }
     public void setAcceptedState(AcceptedCandidacyStateKind acceptedState) { this.acceptedState = acceptedState; }
 
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
 }
-- 
GitLab