From 67b9fa55add377903f9605a40c3e1b12aef8120a Mon Sep 17 00:00:00 2001
From: Adrien <adrien.fryson@outlook.com>
Date: Wed, 19 Feb 2025 16:21:54 +0100
Subject: [PATCH] changes

---
 sae/WEB-INF/src/.DS_Store                 | Bin 6148 -> 6148 bytes
 sae/WEB-INF/src/controleur/.DS_Store      | Bin 0 -> 6148 bytes
 sae/WEB-INF/src/controleur/CreerFil.java  |   7 +++++++
 sae/WEB-INF/src/modele/AbonnementDao.java |  20 ++++++++++++++++++++
 sae/WEB-INF/vue/creerFil.jsp              |  11 +++++++++++
 sae/WEB-INF/vue/listerFil.jsp             |   6 +++---
 6 files changed, 41 insertions(+), 3 deletions(-)
 create mode 100644 sae/WEB-INF/src/controleur/.DS_Store

diff --git a/sae/WEB-INF/src/.DS_Store b/sae/WEB-INF/src/.DS_Store
index a98287ea9bb9904820a616b46527faa616b68ab0..582de7cbf34dfc3cd5280df1e023c54cf10cc6ec 100644
GIT binary patch
delta 142
zcmZoMXfc=|#>B!ku~2NHo+2aL#(>?7iv?Ji7}+NCFiFUG=Hw?Q<>V(ZFfa%(FfceW
zFfi!-2LlF%$vjLmIE*b#brej@O(w5lDnM7g9$EEf9_HCho7p+|Iha_uHZ!t(XP(S2
U;>f|sz`(@7z`(FMLSzjy00F%wfB*mh

delta 75
zcmZoMXfc=|#>B)qu~2NHo+2a5#(>?7j4YEKSY}NA!|Fa+p4D)34Qn^k#)br@&Fmcf
g9864{n*}+(Gf(ChapYiNU|?WmU|`uCA+m-U02S;K-v9sr

diff --git a/sae/WEB-INF/src/controleur/.DS_Store b/sae/WEB-INF/src/controleur/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..48a99a9ad01e4601dba5748834a23b47792f957a
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zEL;p&0Z1N%F(jFwBAg)ez-FW}WHRJ1=rLq5Btqpz
zsnHM^4S~TM0-(Ih!{Eq}%#h4b%7C1I%NP<pbMljua`Ka)1%x951B2dwFaUdqm%*8#
zh#{3Bm7$2i4Jqei>RgYeQ<%Y(A&;SqA)lcVtlO6%m7$oSm?4oNogo!keqflw*o|fi
z2Yy=_f1;`9WAI_fWGH4R0o#e!#Z2jFdbt>U81fm?88R92aJi2G6h8C7!Sf#+KHN|}
z`3$8DB{+3~!UkCvFGCPRD%d8NOCjYcW_ZXlFfbtN<YNeCC}qfGC<Dg|UjKo^5?L?U
z!K1{83IRrlZ#lRj^e8zR0;3@?8UpYT0F@64khVR81C(xn&>$%WMg|6O7l4t0fd!_C
z5!?@80Lg*0f@qLd5Dn7GzzAZ2%>Zj<V1#OA1b0I~`aoS05DnJOzzDV(#0P6<U<BLD
zz`zL6&cFz@nGxDUVT5RBV1#IAU<BI^bKNLC8Umvs01E+T2txo=|GP3U;OhTFRE?6O
zAut*O!!iUISzLl$oWPYbcK?CuT2OtO0F?&S!Jz7x5mYZj^nsLsWtkuYiV|QBL=L1C
bRPBSSVnzlAkk-+L04#t;>Cq4vfDixx^}dr%

literal 0
HcmV?d00001

diff --git a/sae/WEB-INF/src/controleur/CreerFil.java b/sae/WEB-INF/src/controleur/CreerFil.java
index 9e31e62..7f252aa 100644
--- a/sae/WEB-INF/src/controleur/CreerFil.java
+++ b/sae/WEB-INF/src/controleur/CreerFil.java
@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import modele.FilDeDiscussion;
 import modele.FilDeDiscussionDAO;
+import modele.UtilisateurDao;
 import jakarta.servlet.ServletException;
 import java.io.IOException;
 import org.apache.commons.text.StringEscapeUtils;
@@ -29,6 +30,12 @@ public class CreerFil extends HttpServlet {
         FilDeDiscussionDAO f = new FilDeDiscussionDAO();
         String nom = StringEscapeUtils.escapeHtml4(req.getParameter("nom"));
         String createuremail = StringEscapeUtils.escapeHtml4(req.getParameter("createuremail"));
+        UtilisateurDao udao = new UtilisateurDao();
+        if (!udao.emailExists(createuremail)) {
+            req.setAttribute("error", "L'email n'existe pas.");
+            req.getRequestDispatcher("/WEB-INF/vue/creerFil.jsp").forward(req, res);
+            return;
+        }
         f.create(new FilDeDiscussion(
             -1,
             nom,
diff --git a/sae/WEB-INF/src/modele/AbonnementDao.java b/sae/WEB-INF/src/modele/AbonnementDao.java
index 5653988..151db56 100644
--- a/sae/WEB-INF/src/modele/AbonnementDao.java
+++ b/sae/WEB-INF/src/modele/AbonnementDao.java
@@ -7,6 +7,26 @@ import java.util.List;
 import java.util.ArrayList;
 
 public class AbonnementDao {
+    
+    public Abonnement findAbonnement(String utilisateurEmail, int idFil) {
+        Abonnement abonnement = new Abonnement();
+        try(Connection con = DS.instance.getConnection()) {
+            PreparedStatement ps = con.prepareStatement("SELECT * FROM abonnement WHERE utilisateuremail = ? AND filid = ?");
+            ps.setString(1, utilisateurEmail);
+            ps.setInt(2, idFil);
+            ResultSet rs = ps.executeQuery();
+            if (rs.next()) {
+                abonnement.setUtilisateurEmail(rs.getString("utilisateuremail"));
+                abonnement.setIdFil(rs.getInt("filid"));
+                abonnement.setDateAbonnement(rs.getDate("dateabonnement").toLocalDate());
+            } else {
+                System.out.println("Abonnement inexistant");
+            }
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+        return abonnement;
+    }
 
     public List<Abonnement> findAll() {
         List<Abonnement> abonnements = new ArrayList<>();
diff --git a/sae/WEB-INF/vue/creerFil.jsp b/sae/WEB-INF/vue/creerFil.jsp
index b952762..b7f303f 100644
--- a/sae/WEB-INF/vue/creerFil.jsp
+++ b/sae/WEB-INF/vue/creerFil.jsp
@@ -45,6 +45,17 @@
         <div class="text-center mb-4">
             <a href="<%= request.getContextPath() %>/listerFil" class="btn btn-primary">Retour aux fils de discussion</a>
         </div>
+
+        <%
+            if (request.getAttribute("error") != null) {
+        %>
+            <div class="alert alert-danger" role="alert">
+                <%= request.getAttribute("error") %>
+            </div>
+        <%
+            }
+        %>
+
         <div class="form-container">
             <h1 class="text-center">Créer un nouveau fil de discussion</h1>
             <form action="creerFil" method="post" class="mt-4">
diff --git a/sae/WEB-INF/vue/listerFil.jsp b/sae/WEB-INF/vue/listerFil.jsp
index c90ab35..12a3548 100644
--- a/sae/WEB-INF/vue/listerFil.jsp
+++ b/sae/WEB-INF/vue/listerFil.jsp
@@ -81,9 +81,9 @@
                     if (!abonnementsIds.contains(f.getId())) {
             %>
                 <div class="thread-item">
-                    <h4>
-                        <a href="<%= request.getContextPath() %>/fil?id=<%= f.getId() %>"><%= f.getNom() %></a>
-                        <a href="<%= request.getContextPath() %>/suivreFil?id=<%= f.getId() %>" class="btn btn-primary btn-sm float-right">Suivre</a>
+                    <h4 class="d-flex justify-content-between align-items-center">
+                        <p class="thread-name mb-0"><%= f.getNom() %></p>
+                        <a href="<%= request.getContextPath() %>/suivreFil?id=<%= f.getId() %>" class="btn btn-primary btn-sm">Suivre</a>
                     </h4>
                     <!-- potentiellement mettre une description -->
                 </div>
-- 
GitLab