diff --git a/sae/WEB-INF/src/.DS_Store b/sae/WEB-INF/src/.DS_Store index a98287ea9bb9904820a616b46527faa616b68ab0..582de7cbf34dfc3cd5280df1e023c54cf10cc6ec 100644 Binary files a/sae/WEB-INF/src/.DS_Store and b/sae/WEB-INF/src/.DS_Store differ 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 Binary files /dev/null and b/sae/WEB-INF/src/controleur/.DS_Store differ diff --git a/sae/WEB-INF/src/controleur/CreerFil.java b/sae/WEB-INF/src/controleur/CreerFil.java index 9e31e62023732982e498956d7a58721c3fb8e736..7f252aa690ff9e6427ed149d0469c00b61d2d9ad 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 56539883d30c122b082efefd23eee92da29da67c..151db56f829371b350e8ac9b0be21c0da1e0a84d 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 b95276236515684f1732a71fea86374828a68d3a..b7f303fb9d13c7a7edd00a4dcf1d84d656c701d3 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 c90ab353677804a8c4ae5fb1981704fdddb54b02..12a35482bee0b34e7d3589ce1a31f1a57ce51621 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>