mirror of
https://github.com/kmitresse/Cards-Rush.git
synced 2026-05-13 17:11:49 +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.EntityManagerFactory;
|
||||
import jakarta.persistence.FlushModeType;
|
||||
import jakarta.persistence.Persistence;
|
||||
import uppa.project.Global;
|
||||
|
||||
@@ -25,14 +26,18 @@ public final class EntityManagerProvider {
|
||||
private static EntityManagerFactory factory;
|
||||
|
||||
public static EntityManager getInstance() {
|
||||
if (instance == null) {
|
||||
instance = getFactory().createEntityManager();
|
||||
instance.setFlushMode(FlushModeType.COMMIT);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static EntityManagerFactory getFactory() {
|
||||
if (factory == null) {
|
||||
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
|
||||
}
|
||||
|
||||
if (instance == null) {
|
||||
instance = factory.createEntityManager();
|
||||
}
|
||||
return instance;
|
||||
return factory;
|
||||
}
|
||||
|
||||
public static void setPersitenceUnitName(String name) {
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
package uppa.project.web.filter;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.servlet.Filter;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import jakarta.servlet.ServletResponse;
|
||||
import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
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 {
|
||||
|
||||
@@ -24,7 +29,22 @@ public class AuthenticationFilter implements Filter {
|
||||
|
||||
// Si l'utilisateur est connecté, laisser passer la requête
|
||||
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 {
|
||||
// Sinon, rediriger vers la page de connexion
|
||||
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.EntityManagerProvider;
|
||||
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.Game;
|
||||
import uppa.project.database.pojo.Player;
|
||||
@@ -225,20 +226,16 @@ public class GameWS {
|
||||
} else {
|
||||
theoricWinner.setWinner();
|
||||
|
||||
// Broadcast the end of the game
|
||||
broadcast(new Message("end", gson.toJson(new SimpleGame(game, games.get(game)))).toJson());
|
||||
|
||||
|
||||
EntityManager em = EntityManagerProvider.getInstance();
|
||||
EntityManager em = EntityManagerProvider.getFactory().createEntityManager();
|
||||
DAO<Player> playerDAO = new Game_JPA_DAO_Factory().getDAOPlayer();
|
||||
|
||||
em.getTransaction().begin();
|
||||
em.persist(game);
|
||||
for (Player p : games.get(game)){
|
||||
game.addPlayer(p);
|
||||
p.getUser().addPlayedGame(p);
|
||||
}
|
||||
em.persist(game);
|
||||
for (Player p : games.get(game)) playerDAO.create(p);
|
||||
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