From 9d0b1e09b9cf0b80fa12abee8b7aca246619608c Mon Sep 17 00:00:00 2001
From: Adrien Fryson <adrien.fryson@outlook.com>
Date: Sun, 16 Mar 2025 16:56:54 +0100
Subject: [PATCH] fixes

---
 sae/WEB-INF/src/controleur/DeleteMessage.java |  2 +-
 sae/WEB-INF/src/controleur/GetFils.java       |  3 +-
 sae/WEB-INF/src/controleur/Parametre.java     |  3 --
 sae/WEB-INF/src/modele/AbonnementDao.java     |  1 -
 .../src/modele/FilDeDiscussionDAO.java        |  1 -
 sae/WEB-INF/src/modele/MessageDao.java        |  5 ++-
 sae/WEB-INF/src/modele/UtilisateurDao.java    |  2 +-
 sae/WEB-INF/vue/accueil.jsp                   |  5 ++-
 sae/WEB-INF/vue/creerFil.jsp                  |  4 +--
 sae/WEB-INF/vue/fil.jsp                       |  4 +--
 sae/WEB-INF/vue/listerFil.jsp                 |  4 +--
 sae/WEB-INF/vue/login.jsp                     |  8 ++---
 sae/WEB-INF/vue/parametre.jsp                 |  4 +--
 sae/WEB-INF/vue/register.jsp                  |  8 ++---
 script.sql                                    | 32 +++++++------------
 15 files changed, 35 insertions(+), 51 deletions(-)

diff --git a/sae/WEB-INF/src/controleur/DeleteMessage.java b/sae/WEB-INF/src/controleur/DeleteMessage.java
index efd56d4..74aa1e0 100644
--- a/sae/WEB-INF/src/controleur/DeleteMessage.java
+++ b/sae/WEB-INF/src/controleur/DeleteMessage.java
@@ -33,4 +33,4 @@ public class DeleteMessage extends HttpServlet {
         }
         res.sendRedirect(req.getHeader("Referer"));
     }
-}
+}
\ No newline at end of file
diff --git a/sae/WEB-INF/src/controleur/GetFils.java b/sae/WEB-INF/src/controleur/GetFils.java
index f9fe82c..8ca4d28 100644
--- a/sae/WEB-INF/src/controleur/GetFils.java
+++ b/sae/WEB-INF/src/controleur/GetFils.java
@@ -22,7 +22,8 @@ import modele.FilDeDiscussionDAO;
 import modele.Message;
 import modele.MessageDao;
 
-//http GET http://localhost:8080/sae/getFils Cookie:"JSESSIONID=ton_session_id" --> F12>Storage>JSESSIONID
+// http GET http://localhost:8080/CampusTalk/getFils Cookie:"JSESSIONID=?" --> F12>Storage>JSESSIONID
+// curl -X GET http://localhost:8080/CampusTalk/getFils --cookie "JSESSIONID=?"
 
 @WebServlet("/getFils")
 public class GetFils extends HttpServlet {
diff --git a/sae/WEB-INF/src/controleur/Parametre.java b/sae/WEB-INF/src/controleur/Parametre.java
index 8da9bb5..90d984b 100644
--- a/sae/WEB-INF/src/controleur/Parametre.java
+++ b/sae/WEB-INF/src/controleur/Parametre.java
@@ -6,9 +6,6 @@ import jakarta.servlet.annotation.WebServlet;
 import jakarta.servlet.http.HttpServlet;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import modele.AbonnementDao;
-import modele.FilDeDiscussionDAO;
-import modele.MessageDao;
 import modele.Utilisateur;
 import modele.UtilisateurDao;
 import org.apache.commons.text.StringEscapeUtils;
diff --git a/sae/WEB-INF/src/modele/AbonnementDao.java b/sae/WEB-INF/src/modele/AbonnementDao.java
index 51021fb..151db56 100644
--- a/sae/WEB-INF/src/modele/AbonnementDao.java
+++ b/sae/WEB-INF/src/modele/AbonnementDao.java
@@ -3,7 +3,6 @@ package modele;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.List;
 import java.util.ArrayList;
 
diff --git a/sae/WEB-INF/src/modele/FilDeDiscussionDAO.java b/sae/WEB-INF/src/modele/FilDeDiscussionDAO.java
index 4553a75..8abb930 100644
--- a/sae/WEB-INF/src/modele/FilDeDiscussionDAO.java
+++ b/sae/WEB-INF/src/modele/FilDeDiscussionDAO.java
@@ -3,7 +3,6 @@ package modele;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/sae/WEB-INF/src/modele/MessageDao.java b/sae/WEB-INF/src/modele/MessageDao.java
index b95fbb2..9396802 100644
--- a/sae/WEB-INF/src/modele/MessageDao.java
+++ b/sae/WEB-INF/src/modele/MessageDao.java
@@ -3,7 +3,6 @@ package modele;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -35,7 +34,7 @@ public class MessageDao {
     public List<Message> findAll() {
         List<Message> messages = new ArrayList<>();
         try(Connection con = DS.instance.getConnection()) {
-            PreparedStatement ps = con.prepareStatement("SELECT * FROM message");
+            PreparedStatement ps = con.prepareStatement("SELECT * FROM message ORDER BY datePublication, id");
             ResultSet rs = ps.executeQuery();
             while (rs.next()) {
                 Message message = new Message();
@@ -57,7 +56,7 @@ public class MessageDao {
     public List<Message> findByFil(int idFil) {
         List<Message> messages = new ArrayList<>();
         try(Connection con = DS.instance.getConnection()) {
-            PreparedStatement ps = con.prepareStatement("SELECT * FROM message WHERE filId = ?");
+            PreparedStatement ps = con.prepareStatement("SELECT * FROM message WHERE filId = ? ORDER BY datePublication, id");
             ps.setInt(1, idFil);
             ResultSet rs = ps.executeQuery();
             while (rs.next()) {
diff --git a/sae/WEB-INF/src/modele/UtilisateurDao.java b/sae/WEB-INF/src/modele/UtilisateurDao.java
index a138867..bd5592f 100644
--- a/sae/WEB-INF/src/modele/UtilisateurDao.java
+++ b/sae/WEB-INF/src/modele/UtilisateurDao.java
@@ -50,7 +50,7 @@ public class UtilisateurDao {
 
     public void update(Utilisateur utilisateur, String oldEmail) {
         try(Connection con = DS.instance.getConnection()) {
-            PreparedStatement ps = con.prepareStatement("UPDATE Utilisateur SET nom = ?, email = ?, motdepasse = ? WHERE email = ?");
+            PreparedStatement ps = con.prepareStatement("UPDATE Utilisateur SET nom = ?, email = ?, motdepasse = MD5(?) WHERE email = ?");
             ps.setString(1, utilisateur.getNom());
             ps.setString(2, utilisateur.getEmail());
             ps.setString(3, utilisateur.getMotDePasse());
diff --git a/sae/WEB-INF/vue/accueil.jsp b/sae/WEB-INF/vue/accueil.jsp
index d4a5831..a8abe5a 100644
--- a/sae/WEB-INF/vue/accueil.jsp
+++ b/sae/WEB-INF/vue/accueil.jsp
@@ -8,7 +8,6 @@
 <%@ page import="java.util.Set" %>
 <%@ page import="java.util.HashSet" %>
 
-
 <!DOCTYPE html>
 <html lang="fr">
 <head>
@@ -18,8 +17,8 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
diff --git a/sae/WEB-INF/vue/creerFil.jsp b/sae/WEB-INF/vue/creerFil.jsp
index a74d25b..7a2709e 100644
--- a/sae/WEB-INF/vue/creerFil.jsp
+++ b/sae/WEB-INF/vue/creerFil.jsp
@@ -9,8 +9,8 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
diff --git a/sae/WEB-INF/vue/fil.jsp b/sae/WEB-INF/vue/fil.jsp
index ce25440..9c21c56 100644
--- a/sae/WEB-INF/vue/fil.jsp
+++ b/sae/WEB-INF/vue/fil.jsp
@@ -30,8 +30,8 @@
         }
     </style>
 </head>
-<body class="bg-gray-900 text-white flex h-screen">
-    <aside class="w-64 bg-gray-800 text-white h-full">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row h-screen">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-full">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
diff --git a/sae/WEB-INF/vue/listerFil.jsp b/sae/WEB-INF/vue/listerFil.jsp
index 51f0e06..cb5bb28 100644
--- a/sae/WEB-INF/vue/listerFil.jsp
+++ b/sae/WEB-INF/vue/listerFil.jsp
@@ -16,8 +16,8 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
diff --git a/sae/WEB-INF/vue/login.jsp b/sae/WEB-INF/vue/login.jsp
index 160e7b1..02fc0e2 100644
--- a/sae/WEB-INF/vue/login.jsp
+++ b/sae/WEB-INF/vue/login.jsp
@@ -9,19 +9,19 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
-        <nav class="mt-4">
+        <!-- <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
             <a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a>
             <a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a>
             <a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a>
             <a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a>
-        </nav>
+        </nav> -->
     </aside>
     <div class="flex-1 p-6">
         <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
diff --git a/sae/WEB-INF/vue/parametre.jsp b/sae/WEB-INF/vue/parametre.jsp
index e434325..e1ee07c 100644
--- a/sae/WEB-INF/vue/parametre.jsp
+++ b/sae/WEB-INF/vue/parametre.jsp
@@ -17,8 +17,8 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
diff --git a/sae/WEB-INF/vue/register.jsp b/sae/WEB-INF/vue/register.jsp
index 5bbda6d..cb966f5 100644
--- a/sae/WEB-INF/vue/register.jsp
+++ b/sae/WEB-INF/vue/register.jsp
@@ -9,19 +9,19 @@
     <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
     <link rel="shortcut icon" href="<%= request.getContextPath() %>/images/logo.png">
 </head>
-<body class="bg-gray-900 text-white flex">
-    <aside class="w-64 bg-gray-800 text-white h-screen">
+<body class="bg-gray-900 text-white flex flex-col md:flex-row">
+    <aside class="w-full md:w-64 bg-gray-800 text-white h-auto md:h-screen">
         <div class="p-4 text-center">
             <img src="<%= request.getContextPath() %>/images/logo.png" alt="CampusTalk Logo" class="w-16 h-16 mx-auto">
             <h1 class="text-2xl font-bold mt-4">CampusTalk</h1>
         </div>
-        <nav class="mt-4">
+        <!-- <nav class="mt-4">
             <a href="<%= request.getContextPath() %>/accueil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Accueil</a>
             <a href="<%= request.getContextPath() %>/listerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Autres Fils de Discussion</a>
             <a href="<%= request.getContextPath() %>/creerFil" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Créer un Fil</a>
             <a href="<%= request.getContextPath() %>/parametre" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-gray-700">Paramètres</a>
             <a href="<%= request.getContextPath() %>/logout" class="block py-2.5 px-4 rounded transition duration-200 hover:bg-red-700">Se déconnecter</a>
-        </nav>
+        </nav> -->
     </aside>
     <div class="flex-1 p-6">
         <div class="max-w-md mx-auto mt-12 p-6 bg-gray-800 rounded-lg shadow-md">
diff --git a/script.sql b/script.sql
index 84686da..f8cfeb3 100644
--- a/script.sql
+++ b/script.sql
@@ -82,54 +82,46 @@ VALUES
 ('utilisateur3@exemple.com', 2),
 ('utilisateur3@exemple.com', 3);
 
--- Lister tous les utilisateurs :
-
+-- -- Lister tous les utilisateurs :
 -- SELECT * FROM Utilisateur;
 
--- Lister tous les fils de discussion avec le nom du créateur :
-
+-- -- Lister tous les fils de discussion avec le nom du créateur :
 -- SELECT f.id, f.nom, u.nom AS nomCreateur
 -- FROM FilDeDiscussion f
 -- JOIN Utilisateur u ON f.createurEmail = u.email;
 
--- Lister tous les messages d'un fil de discussion spécifique avec le nom de l'auteur :
-
+-- -- Lister tous les messages d'un fil de discussion spécifique avec le nom de l'auteur :
 -- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication
 -- FROM Message m
 -- JOIN Utilisateur u ON m.auteurEmail = u.email
 -- WHERE m.filId = 1
 -- ORDER BY m.datePublication;
 
--- Lister tous les abonnements d'un utilisateur spécifique :
-
+-- -- Lister tous les abonnements d'un utilisateur spécifique :
 -- SELECT f.nom AS nomFil, a.dateAbonnement
 -- FROM Abonnement a
 -- JOIN FilDeDiscussion f ON a.filId = f.id
 -- WHERE a.utilisateurEmail = 'utilisateur1@exemple.com';
 
--- Lister les fils de discussion auxquels un utilisateur n'est pas abonné :
-
+-- -- Lister les fils de discussion auxquels un utilisateur n'est pas abonné :
 -- SELECT f.id, f.nom
 -- FROM FilDeDiscussion f
 -- LEFT JOIN Abonnement a ON f.id = a.filId AND a.utilisateurEmail = 'utilisateur1@exemple.com'
 -- WHERE a.utilisateurEmail IS NULL;
 
--- Compter le nombre de messages par fil de discussion :
-
+-- -- Compter le nombre de messages par fil de discussion :
 -- SELECT f.nom AS nomFil, COUNT(m.id) AS nombreMessages
 -- FROM FilDeDiscussion f
 -- LEFT JOIN Message m ON f.id = m.filId
 -- GROUP BY f.nom;
 
--- Trouver les utilisateurs qui ont publié des messages dans un fil spécifique :
-
+-- -- Trouver les utilisateurs qui ont publié des messages dans un fil spécifique :
 -- SELECT DISTINCT u.nom, u.email
 -- FROM Utilisateur u
 -- JOIN Message m ON u.email = m.auteurEmail
 -- WHERE m.filId = 1;
 
--- Lister les 5 derniers messages publiés dans un fil de discussion :
-
+-- -- Lister les 5 derniers messages publiés dans un fil de discussion :
 -- SELECT m.contenu, u.nom AS nomAuteur, m.datePublication
 -- FROM Message m
 -- JOIN Utilisateur u ON m.auteurEmail = u.email
@@ -137,16 +129,14 @@ VALUES
 -- ORDER BY m.datePublication DESC
 -- LIMIT 5;
 
--- Compter le nombre d'abonnés par fil de discussion :
-
+-- -- Compter le nombre d'abonnés par fil de discussion :
 -- SELECT f.nom AS nomFil, COUNT(a.utilisateurEmail) AS nombreAbonnes
 -- FROM FilDeDiscussion f
 -- LEFT JOIN Abonnement a ON f.id = a.filId
 -- GROUP BY f.nom;
 
--- Lister les utilisateurs qui ne sont abonnés à aucun fil de discussion :
-
+-- -- Lister les utilisateurs qui ne sont abonnés à aucun fil de discussion :
 -- SELECT u.email, u.nom
 -- FROM Utilisateur u
 -- LEFT JOIN Abonnement a ON u.email = a.utilisateurEmail
--- WHERE a.utilisateurEmail IS NULL;
\ No newline at end of file
+-- WHERE a.utilisateurEmail IS NULL;
-- 
GitLab