From 6b84a06b41eca109c6b6c7e6a969c66bcbc55e62 Mon Sep 17 00:00:00 2001 From: Maxime Gosselin~ <maxime.gosselin.etu@univ-lille.fr> Date: Tue, 4 Mar 2025 16:49:04 +0100 Subject: [PATCH] On ne peut plus rejoindre un thread si on ne le follow pas --- WEB-INF/src/controleur/ThreadController.java | 6 +++++- WEB-INF/src/modele/dao/DaoFollower.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/WEB-INF/src/controleur/ThreadController.java b/WEB-INF/src/controleur/ThreadController.java index 44a1c7a..ccb0f86 100644 --- a/WEB-INF/src/controleur/ThreadController.java +++ b/WEB-INF/src/controleur/ThreadController.java @@ -52,7 +52,11 @@ public class ThreadController extends HttpServlet { vue = "WEB-INF/vue/accueil.jsp"; break; case "open": - vue = "WEB-INF/vue/chat.jsp?id=" + idThread; + if(daoFollower.userIsInThread(username, idThread)){ + vue = "WEB-INF/vue/chat.jsp?id=" + idThread; + break; + } + vue = "WEB-INF/vue/fils.jsp"; break; case "create": String name = req.getParameter("name"); diff --git a/WEB-INF/src/modele/dao/DaoFollower.java b/WEB-INF/src/modele/dao/DaoFollower.java index 2870eeb..67b147a 100644 --- a/WEB-INF/src/modele/dao/DaoFollower.java +++ b/WEB-INF/src/modele/dao/DaoFollower.java @@ -99,4 +99,18 @@ public class DaoFollower { } return res; } + + + public boolean userIsInThread(String username, int idThread){ + DS bdd = DS.getInstance(); + try(Connection con = bdd.getConnection()) { + PreparedStatement ps = con.prepareStatement("SELECT * FROM followers WHERE id_thread = ? AND username = ?"); + ps.setInt(1, idThread); + ps.setString(2, username); + ResultSet rs = ps.executeQuery(); + return rs.next(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } } -- GitLab