Skip to content

Commit

Permalink
javaee-projets - login jpa101
Browse files Browse the repository at this point in the history
  • Loading branch information
ltearno committed Nov 16, 2017
1 parent faf8810 commit 17728f2
Show file tree
Hide file tree
Showing 21 changed files with 342 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package fr.lteconsulting.training.moviedb.ejb;

import fr.lteconsulting.training.moviedb.model.Utilisateur;

import javax.ejb.Stateless;
import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;

@Stateless
public class GestionUtilisateur extends GestionGenerique<Utilisateur> {
public GestionUtilisateur() throws NoSuchFieldException {
super(Utilisateur.class);
}

public Utilisateur login(String login, String password) {
try {
TypedQuery<Utilisateur> query = em.createQuery("select u from Utilisateur u where u.login=:login and u.password=:password", Utilisateur.class)
.setParameter("login", login)
.setParameter("password", password);

return query.getSingleResult();
} catch (NoResultException e) {
return null;
}
}

public Utilisateur findByLogin(String login) {
try {
return em.createQuery("select u from Utilisateur u where u.login=:login", Utilisateur.class)
.setParameter("login", login)
.getSingleResult();
} catch (NoResultException e) {
return null;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package fr.lteconsulting.training.moviedb.model;

import javax.persistence.*;

@Entity
public class Utilisateur {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@Column(unique = true)
private String login;

private String password;

private String nom;

private String prenom;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getLogin() {
return login;
}

public void setLogin(String login) {
this.login = login;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getNom() {
return nom;
}

public void setNom(String nom) {
this.nom = nom;
}

public String getPrenom() {
return prenom;
}

public void setPrenom(String prenom) {
this.prenom = prenom;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package fr.lteconsulting.training.moviedb.outil;

import fr.lteconsulting.training.moviedb.model.Utilisateur;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class Session {
private final static String USER_KEY = "utilisateurConnecte";

public static void setUtilisateurConnecte(HttpSession session, Utilisateur utilisateur) {
session.setAttribute(USER_KEY, utilisateur);
}

public static Utilisateur getUtilisateurConnecte(HttpSession session) {
return (Utilisateur) session.getAttribute(USER_KEY);
}

public static boolean estConnecte(HttpServletRequest request) {
return getUtilisateurConnecte(request.getSession()) != null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@
import java.util.Map;

public class Vues {
public static void afficherLogin(HttpServletRequest req, HttpServletResponse resp, String message) throws ServletException, IOException {
req.setAttribute("message", message);

afficherPage(req, resp, "Connexion", "login");
}

public static void afficherInscription(HttpServletRequest req, HttpServletResponse resp, String message) throws ServletException, IOException {
req.setAttribute("message", message);

afficherPage(req, resp, "Inscription", "inscription");
}

public static void afficherCategories(HttpServletRequest req, HttpServletResponse resp, List<Categorie> categories, Map<Integer, Long> nbProduitsParCategorie) throws ServletException, IOException {
req.setAttribute("categories", categories);
req.setAttribute("nbProduitsParCategorie", nbProduitsParCategorie);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import fr.lteconsulting.training.moviedb.ejb.GestionCategories;
import fr.lteconsulting.training.moviedb.model.Categorie;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;

import javax.ejb.EJB;
Expand All @@ -22,6 +23,11 @@ public class CategoriesServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

List<Categorie> categories = gestionCategories.findAll();

Map<Integer, Long> nbProduitsParCategorie = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.lteconsulting.training.moviedb.servlet;

import fr.lteconsulting.training.moviedb.ejb.GestionCategories;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;
import fr.lteconsulting.training.moviedb.model.Categorie;

Expand All @@ -19,6 +20,11 @@ public class EditionCategorieServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Categorie categorie = null;

try {
Expand All @@ -39,6 +45,11 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Categorie categorie = new Categorie();

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import fr.lteconsulting.training.moviedb.ejb.GestionFabricants;
import fr.lteconsulting.training.moviedb.model.Categorie;
import fr.lteconsulting.training.moviedb.model.Fabricant;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;

import javax.ejb.EJB;
Expand All @@ -20,6 +21,11 @@ public class EditionFabricantServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Fabricant fabricant = null;

try {
Expand All @@ -41,6 +47,11 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Fabricant fabricant = new Fabricant();

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import fr.lteconsulting.training.moviedb.ejb.GestionFabricants;
import fr.lteconsulting.training.moviedb.ejb.GestionProduits;
import fr.lteconsulting.training.moviedb.model.Produit;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;

import javax.ejb.EJB;
Expand All @@ -27,6 +28,11 @@ public class EditionProduitServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Produit produit = null;

try {
Expand All @@ -47,6 +53,11 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

Produit produit = new Produit();

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import fr.lteconsulting.training.moviedb.model.Fabricant;
import fr.lteconsulting.training.moviedb.model.Produit;
import fr.lteconsulting.training.moviedb.outil.ExportExcel;
import fr.lteconsulting.training.moviedb.outil.Session;

import javax.ejb.EJB;
import javax.servlet.ServletException;
Expand All @@ -31,6 +32,11 @@ public class ExportServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

resp.setHeader("Content-disposition", "attachment; filename=" + FILENAME);
resp.setHeader("content-type", "application/xls");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import fr.lteconsulting.training.moviedb.ejb.GestionFabricants;
import fr.lteconsulting.training.moviedb.model.Fabricant;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;

import javax.ejb.EJB;
Expand All @@ -22,6 +23,11 @@ public class FabricantsServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (!Session.estConnecte(req)) {
resp.sendRedirect("login");
return;
}

List<Fabricant> fabricants = gestionFabricants.findAll();

Map<Integer, Long> nbProduitsParFabricant = new HashMap<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import fr.lteconsulting.training.moviedb.model.Categorie;
import fr.lteconsulting.training.moviedb.model.Fabricant;
import fr.lteconsulting.training.moviedb.model.Produit;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
Expand Down Expand Up @@ -38,6 +39,11 @@ public class ImportServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (!Session.estConnecte(request)) {
response.sendRedirect("login");
return;
}

String message = importationExcel(request);

Vues.afficherResultatImportation(request, response, message);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package fr.lteconsulting.training.moviedb.servlet;

import fr.lteconsulting.training.moviedb.ejb.GestionUtilisateur;
import fr.lteconsulting.training.moviedb.model.Utilisateur;
import fr.lteconsulting.training.moviedb.outil.Session;
import fr.lteconsulting.training.moviedb.outil.Vues;

import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/inscription")
public class InscriptionServlet extends HttpServlet {
@Inject
private GestionUtilisateur gestionUtilisateur;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Vues.afficherInscription(req, resp, "Bienvenue");
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String login = req.getParameter("login");
String password = req.getParameter("password");
String nom = req.getParameter("nom");
String prenom = req.getParameter("prenom");

Utilisateur existant = gestionUtilisateur.findByLogin(login);
if (existant != null) {
Vues.afficherInscription(req, resp, "Impossible avec ce login, il existe déjà !");
return;
}

Utilisateur utilisateur = new Utilisateur();
utilisateur.setLogin(login);
utilisateur.setPassword(password);
utilisateur.setNom(nom);
utilisateur.setPrenom(prenom);

gestionUtilisateur.add(utilisateur);
Session.setUtilisateurConnecte(req.getSession(), utilisateur);

resp.sendRedirect("produits");
}
}
Loading

0 comments on commit 17728f2

Please sign in to comment.