diff --git a/WEB-INF/src/controleur/ThreadController.java b/WEB-INF/src/controleur/ThreadController.java index 44a1c7a79d963dbe2c5427bf02dc4eb517a8dd31..ccb0f863e030b870cff25d78aa7a6644eac97d60 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 2870eeb0c8841e19347c3b272594e337bd7faef6..67b147a0bd5700bfbc1e870192e44d352d5ce994 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); + } + } }