Skip to content
Snippets Groups Projects
Commit 4e42f8e8 authored by Tom Dequesnes's avatar Tom Dequesnes
Browse files

résuolution du merge conflict

parents dcc30e81 a51b307f
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
package controleurs;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import dao.FilDAO;
import dao.MessageDAO;
import dao.ParticipantFilDAO;
import dao.UtilisateurDAO;
import dto.Fil;
import dto.Utilisateur;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
//Servlet qui permet de rediriger l'utilisateur vers le login.html si il n'est pas connecté, et si il l'est,
// on récupère sa liste de fils et on redirige vers la JSP menu
@WebServlet("/AddUser")
public class AddUser extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html;charset=UTF-8");
HttpSession session = req.getSession(true);
Utilisateur utilisateur = (Utilisateur) session.getAttribute("utilisateur");
if (utilisateur == null) {
res.sendRedirect("login.html");
} else {
FilDAO filDAO = new FilDAO();
List<Fil> fils = filDAO.getFilsByUser(utilisateur.getId());
req.setAttribute("fils", fils);
String rese = req.getParameter("filId");
if (rese != null) {
if (filDAO.partFil(Integer.parseInt(rese), utilisateur.getId())) {
req.setAttribute("filId", rese);
ParticipantFilDAO participantFilDAO = new ParticipantFilDAO();
List<Utilisateur> liste = participantFilDAO.getUsersByFilId(Integer.parseInt(rese));
req.setAttribute("listeUsers", liste);
}
}
req.getRequestDispatcher("addUser.jsp").forward(req, res);
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String userIdString = req.getParameter("userId");
String filIdString = req.getParameter("filId");
if (userIdString != null) {
int userId = Integer.parseInt(userIdString);
int filId = Integer.parseInt(filIdString);
UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
utilisateurDAO.deleteUserById(userId, filId);
res.sendRedirect("Menu?filId="+req.getParameter("filId"));
} else {
res.sendRedirect("Menu");
}
}
}
\ No newline at end of file
...@@ -7,6 +7,7 @@ import java.util.Map; ...@@ -7,6 +7,7 @@ import java.util.Map;
import dao.FilDAO; import dao.FilDAO;
import dao.MessageDAO; import dao.MessageDAO;
import dao.ParticipantFilDAO;
import dao.UtilisateurDAO; import dao.UtilisateurDAO;
import dto.Fil; import dto.Fil;
import dto.Utilisateur; import dto.Utilisateur;
...@@ -47,7 +48,20 @@ public class Menu extends HttpServlet { ...@@ -47,7 +48,20 @@ public class Menu extends HttpServlet {
userNames.put(mess.getUid(), user.getPrenom()+" "+user.getNom()); userNames.put(mess.getUid(), user.getPrenom()+" "+user.getNom());
} }
} }
ParticipantFilDAO participantFilDAO = new ParticipantFilDAO();
// Vérifier si l'utilisateur est admin du fil
boolean isAdmin = participantFilDAO.isAdmin(utilisateur, Integer.parseInt(rese));
// Envoyer les données à la JSP
req.setAttribute("isAdmin", isAdmin);
req.setAttribute("userNames", userNames); req.setAttribute("userNames", userNames);
List<Utilisateur> liste = participantFilDAO.getUsersByFilId(Integer.parseInt(rese));
req.setAttribute("listeUsers", liste);
} }
} }
req.getRequestDispatcher("menu.jsp").forward(req, res); req.getRequestDispatcher("menu.jsp").forward(req, res);
......
package dao; package dao;
import dto.Utilisateur;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class ParticipantFilDAO { public class ParticipantFilDAO {
...@@ -46,4 +49,22 @@ public class ParticipantFilDAO { ...@@ -46,4 +49,22 @@ public class ParticipantFilDAO {
return false; return false;
} }
} }
public List<dto.Utilisateur> getUsersByFilId(int filId){
//Récupérer la liste des utilisateurs du fil passé en paramètre
String query = "SELECT u.* FROM UTILISATEUR AS u JOIN PARTICIPANT_FIL AS participant ON u.U_ID = participant.UP_ID WHERE participant.FP_ID = ?";
try (Connection con = ds.getConnection();){
PreparedStatement ps = con.prepareStatement(query);
ps.setInt(1, filId);
ResultSet rs = ps.executeQuery();
List<dto.Utilisateur> liste = new ArrayList<>();
while (rs.next()){
liste.add(new Utilisateur(rs.getInt("u_id"), rs.getString("mail"), rs.getString("nom"), rs.getString("prenom")));
}
return liste;
}catch (Exception e){
System.err.println(e.getMessage());
return null;
}
}
} }
...@@ -131,4 +131,18 @@ public class UtilisateurDAO { ...@@ -131,4 +131,18 @@ public class UtilisateurDAO {
} }
return userId; return userId;
} }
public boolean deleteUserById(int userId, int filId) {
String query = "Delete from participant_fil where up_id = ? and fp_id = ?";
try (Connection con = ds.getConnection()) {
PreparedStatement ps = con.prepareStatement(query);
ps.setInt(1, userId);
ps.setInt(2, filId);
ResultSet rs = ps.executeQuery();
return rs.next();
} catch (Exception e) {
System.err.println(e.getMessage());
return false; // En cas d'erreur, on retourne false
}
}
} }
\ No newline at end of file
<%@ page import="dto.Utilisateur" %> <%@ page import="dto.Utilisateur" %>
<%@ page import="dao.ParticipantFilDAO" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
...@@ -25,6 +28,33 @@ ...@@ -25,6 +28,33 @@
<button type="submit" class="btn btn-primary">Ajouter</button> <button type="submit" class="btn btn-primary">Ajouter</button>
</form> </form>
</div> </div>
<div class="container">
<h2>Liste des Membres du Fil</h2>
<ul class="list-group">
<%
List<Utilisateur> utilisateurs = (List<Utilisateur>) request.getAttribute("listeUsers");
if (utilisateurs != null && !utilisateurs.isEmpty()) {
for (Utilisateur user : utilisateurs) {
%>
<li class="list-group-item d-flex justify-content-between align-items-center">
<%= user.getPrenom() %> <%= user.getNom() %> - <%= user.getEmail() %>
<form action="AddUser" method="post" style="display:inline;">
<input type="hidden" name="userId" value="<%= user.getId() %>">
<input type="hidden" name="filId" value="<%= request.getParameter("filId") %>">
<button type="submit" class="btn btn-danger btn-sm">Supprimer</button>
</form>
</li>
<%
}
} else {
%>
<li class="list-group-item">Aucun membre trouve .</li>
<% } %>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -99,16 +99,21 @@ ...@@ -99,16 +99,21 @@
</div> </div>
<% } %> <% } %>
</div> </div>
<%
Boolean isAdmin = (Boolean) request.getAttribute("isAdmin");
%>
<form action="EnvoyerMessage" method="POST" class="w-100 mt-auto"> <form action="EnvoyerMessage" method="POST" class="w-100 mt-auto">
<input type="hidden" name="fid" value="<%= request.getAttribute("filId") %>"> <input type="hidden" name="fid" value="<%= request.getAttribute("filId") %>">
<input type="hidden" name="uid" value="<%= utilisateur.getId() %>"> <input type="hidden" name="uid" value="<%= utilisateur.getId() %>">
<div class="input-group p-1 rounded border d-flex align-items-center bg-white"> <div class="input-group p-1 rounded border d-flex align-items-center bg-white">
<a href="addUser.jsp?filId=<%=request.getAttribute("filId")%>" class="btn btn-light text-dark fs3"> <%
if(isAdmin){
%>
<a href="AddUser?filId=<%=request.getAttribute("filId")%>" class="btn btn-light text-dark fs3">
<i class="bi bi-person-plus fs-4"></i> <i class="bi bi-person-plus fs-4"></i>
</a> </a>
<span class="px-2 text-muted bg-white">|</span> <span class="px-2 text-muted bg-white">|</span>
<% } %>
<button class="btn btn-light text-dark" type="button"> <button class="btn btn-light text-dark" type="button">
<i class="bi bi-image fs-4"></i> <i class="bi bi-image fs-4"></i>
</button> </button>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment