mirror of
https://github.com/kmitresse/Cards-Rush.git
synced 2026-07-09 13:27:45 +00:00
draft(DevWeb): Try to fetch the user for each pages
This commit is contained in:
+10
-5
@@ -8,6 +8,7 @@ package uppa.project.database.dao;
|
|||||||
|
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
import jakarta.persistence.EntityManagerFactory;
|
import jakarta.persistence.EntityManagerFactory;
|
||||||
|
import jakarta.persistence.FlushModeType;
|
||||||
import jakarta.persistence.Persistence;
|
import jakarta.persistence.Persistence;
|
||||||
import uppa.project.Global;
|
import uppa.project.Global;
|
||||||
|
|
||||||
@@ -25,14 +26,18 @@ public final class EntityManagerProvider {
|
|||||||
private static EntityManagerFactory factory;
|
private static EntityManagerFactory factory;
|
||||||
|
|
||||||
public static EntityManager getInstance() {
|
public static EntityManager getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = getFactory().createEntityManager();
|
||||||
|
instance.setFlushMode(FlushModeType.COMMIT);
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EntityManagerFactory getFactory() {
|
||||||
if (factory == null) {
|
if (factory == null) {
|
||||||
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
|
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
|
||||||
}
|
}
|
||||||
|
return factory;
|
||||||
if (instance == null) {
|
|
||||||
instance = factory.createEntityManager();
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setPersitenceUnitName(String name) {
|
public static void setPersitenceUnitName(String name) {
|
||||||
|
|||||||
@@ -1,15 +1,20 @@
|
|||||||
package uppa.project.web.filter;
|
package uppa.project.web.filter;
|
||||||
|
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
import jakarta.servlet.Filter;
|
import jakarta.servlet.Filter;
|
||||||
import jakarta.servlet.FilterChain;
|
import jakarta.servlet.FilterChain;
|
||||||
import jakarta.servlet.ServletException;
|
import jakarta.servlet.ServletException;
|
||||||
import jakarta.servlet.ServletRequest;
|
import jakarta.servlet.ServletRequest;
|
||||||
import jakarta.servlet.ServletResponse;
|
import jakarta.servlet.ServletResponse;
|
||||||
import jakarta.servlet.annotation.WebServlet;
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.servlet.http.HttpSession;
|
import jakarta.servlet.http.HttpSession;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import uppa.project.database.dao.DAO;
|
||||||
|
import uppa.project.database.dao.DAOException;
|
||||||
|
import uppa.project.database.dao.EntityManagerProvider;
|
||||||
|
import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory;
|
||||||
|
import uppa.project.database.pojo.User;
|
||||||
|
|
||||||
public class AuthenticationFilter implements Filter {
|
public class AuthenticationFilter implements Filter {
|
||||||
|
|
||||||
@@ -24,7 +29,22 @@ public class AuthenticationFilter implements Filter {
|
|||||||
|
|
||||||
// Si l'utilisateur est connecté, laisser passer la requête
|
// Si l'utilisateur est connecté, laisser passer la requête
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
chain.doFilter(request, response);
|
User currentUser = (User) session.getAttribute("user");
|
||||||
|
try {
|
||||||
|
// Met à jour l'utilisateur en session
|
||||||
|
DAO<User> userDAO = new Game_JPA_DAO_Factory().getDAOUser();
|
||||||
|
session.removeAttribute("user");
|
||||||
|
EntityManager em = EntityManagerProvider.getInstance();
|
||||||
|
|
||||||
|
em.getTransaction().begin();
|
||||||
|
session.setAttribute("user", userDAO.findById(currentUser.getId().intValue()));
|
||||||
|
em.getTransaction().commit();
|
||||||
|
|
||||||
|
// Passe la requête au filtre suivant
|
||||||
|
chain.doFilter(request, response);
|
||||||
|
} catch (DAOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Sinon, rediriger vers la page de connexion
|
// Sinon, rediriger vers la page de connexion
|
||||||
httpResponse.sendRedirect(httpRequest.getContextPath() + "/login");
|
httpResponse.sendRedirect(httpRequest.getContextPath() + "/login");
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import uppa.project.database.dao.DAO;
|
|||||||
import uppa.project.database.dao.DAOException;
|
import uppa.project.database.dao.DAOException;
|
||||||
import uppa.project.database.dao.EntityManagerProvider;
|
import uppa.project.database.dao.EntityManagerProvider;
|
||||||
import uppa.project.database.dao.jpa.DAO_JPA_User;
|
import uppa.project.database.dao.jpa.DAO_JPA_User;
|
||||||
|
import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory;
|
||||||
import uppa.project.database.pojo.Card;
|
import uppa.project.database.pojo.Card;
|
||||||
import uppa.project.database.pojo.Game;
|
import uppa.project.database.pojo.Game;
|
||||||
import uppa.project.database.pojo.Player;
|
import uppa.project.database.pojo.Player;
|
||||||
@@ -225,20 +226,16 @@ public class GameWS {
|
|||||||
} else {
|
} else {
|
||||||
theoricWinner.setWinner();
|
theoricWinner.setWinner();
|
||||||
|
|
||||||
// Broadcast the end of the game
|
EntityManager em = EntityManagerProvider.getFactory().createEntityManager();
|
||||||
broadcast(new Message("end", gson.toJson(new SimpleGame(game, games.get(game)))).toJson());
|
DAO<Player> playerDAO = new Game_JPA_DAO_Factory().getDAOPlayer();
|
||||||
|
|
||||||
|
|
||||||
EntityManager em = EntityManagerProvider.getInstance();
|
|
||||||
|
|
||||||
em.getTransaction().begin();
|
em.getTransaction().begin();
|
||||||
em.persist(game);
|
for (Player p : games.get(game)) playerDAO.create(p);
|
||||||
for (Player p : games.get(game)){
|
|
||||||
game.addPlayer(p);
|
|
||||||
p.getUser().addPlayedGame(p);
|
|
||||||
}
|
|
||||||
em.persist(game);
|
|
||||||
em.getTransaction().commit();
|
em.getTransaction().commit();
|
||||||
|
em.close();
|
||||||
|
|
||||||
|
// Broadcast the end of the game
|
||||||
|
broadcast(new Message("end", gson.toJson(new SimpleGame(game, games.get(game)))).toJson());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user