From 658f1c3e9cdef1921be490836b448d25a445ac5f Mon Sep 17 00:00:00 2001 From: jleroy Date: Thu, 25 Apr 2024 16:58:47 +0200 Subject: [PATCH 1/2] =?UTF-8?q?D=C3=A9but=20de=20la=20page=20admin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/eni/enchere/bll/CategorieService.java | 3 +- .../eni/enchere/bll/CategorieServiceImpl.java | 10 ++++ .../enchere/controllers/AdminController.java | 22 ++++++- .../eni/enchere/dal/CategorieRepository.java | 2 + .../enchere/dal/CategorieRepositoryImpl.java | 12 +++- .../eni/enchere/dal/UserRepositoryImpl.java | 4 +- src/main/resources/templates/admin.html | 59 +++++++++++++++++++ 7 files changed, 108 insertions(+), 4 deletions(-) diff --git a/src/main/java/fr/eni/enchere/bll/CategorieService.java b/src/main/java/fr/eni/enchere/bll/CategorieService.java index 1ef5171..5bf3b10 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieService.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieService.java @@ -9,5 +9,6 @@ import java.util.List; public interface CategorieService { List findAllCategories(); Categorie findCategorieById(int id); - + void saveCategorie(Categorie categorie); + void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java index e2f128d..d5cc635 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java @@ -28,5 +28,15 @@ public class CategorieServiceImpl implements CategorieService { return categorieRepository.findCategorieById(id); } + @Override + public void saveCategorie(Categorie categorie) { + categorieRepository.saveCategorie(categorie); + } + + @Override + public void deleteCategorie(int id) { + categorieRepository.deleteCategorie(id); + } + } diff --git a/src/main/java/fr/eni/enchere/controllers/AdminController.java b/src/main/java/fr/eni/enchere/controllers/AdminController.java index dd84ee1..e4a36ac 100644 --- a/src/main/java/fr/eni/enchere/controllers/AdminController.java +++ b/src/main/java/fr/eni/enchere/controllers/AdminController.java @@ -2,6 +2,12 @@ package fr.eni.enchere.controllers; import fr.eni.enchere.bll.CategorieService; import fr.eni.enchere.bll.UserService; +import fr.eni.enchere.bo.Article; +import fr.eni.enchere.bo.Retrait; +import fr.eni.enchere.bo.UserProfil; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -20,7 +26,21 @@ public class AdminController { @GetMapping( "/admin") public String viewAdminPanel(Model model) { model.addAttribute("categories", categorieService.findAllCategories()); - //model.addAttribute("userProfil", userService.f); + model.addAttribute("userProfil", userService.listeUtilisateurs()); return "admin"; } + +// @GetMapping("/admin") +// public String newArticleForm(HttpServletRequest request, Model model) { +// model.addAttribute("categories", categorieService.findAllCategories()); +// model.addAttribute("article", new Article()); +// model.addAttribute("retrait", new Retrait()); +// model.addAttribute("requestURI", request.getRequestURI()); +// //Récupérer l'utilisateur pour set le retrait à son adresse par defaut +// Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); +// String username = authentication.getName(); +// UserProfil userProfile = userService.utilisateurByName(username); +// model.addAttribute("user", userProfile); +// return "admin"; +// } } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java index aa54ee9..4f7add2 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java @@ -7,4 +7,6 @@ import java.util.List; public interface CategorieRepository { List findAllCategories(); Categorie findCategorieById(int id); + void saveCategorie(Categorie categorie); + void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java index 478e802..336c285 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java @@ -35,7 +35,7 @@ public class CategorieRepositoryImpl implements CategorieRepository { @Override public List findAllCategories() { - String sql = "SELECT * FROM CATEGORIES"; + String sql = "SELECT * FROM CATEGORIES WHERE isDelete = 0"; List categories = jdbcTemplate.query(sql, new CategorieRowMapper()); return categories; } @@ -46,4 +46,14 @@ public class CategorieRepositoryImpl implements CategorieRepository { Categorie categorie = jdbcTemplate.queryForObject(sql, new CategorieRowMapper(), id); return categorie; } + + @Override + public void saveCategorie(Categorie categorie) { + + } + + @Override + public void deleteCategorie(int id) { + + } } diff --git a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java index b230052..d96c466 100644 --- a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java @@ -75,7 +75,9 @@ public class UserRepositoryImpl implements UserRepository { @Override public List findAll() { - return List.of(); + String sql = "SELECT * FROM UTILISATEURS WHERE isDelete = 0"; + List users = jdbcTemplate.query(sql, new UserRowMapper()); + return users; } @Override diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html index be851f1..5b65cfa 100644 --- a/src/main/resources/templates/admin.html +++ b/src/main/resources/templates/admin.html @@ -2,9 +2,68 @@ +
+

Liste des catégories modifiées

+ + + + + + + + + + + + + + +
NomAction
+
+ + +
+
+
+ + +
+
+

Liste des utilisateurs

+ + + + + + + + + + + + + + + + + + + + + +
IDPseudoNomPrénomEmailAction
+
+ + +
+
+ + +
+
From 0c28a4ce14f7c805eaaa74a992eee08d8350c1be Mon Sep 17 00:00:00 2001 From: jleroy Date: Fri, 26 Apr 2024 11:28:16 +0200 Subject: [PATCH 2/2] Page admin V1 --- build.gradle | 9 ++++- .../fr/eni/enchere/bll/CategorieService.java | 1 + .../eni/enchere/bll/CategorieServiceImpl.java | 5 +++ .../enchere/controllers/AdminController.java | 35 +++++++++++-------- .../eni/enchere/dal/CategorieRepository.java | 1 + .../enchere/dal/CategorieRepositoryImpl.java | 11 ++++-- .../enchere/security/WebSecurityConfig.java | 2 ++ src/main/resources/application.properties | 3 +- src/main/resources/templates/admin.html | 12 ++++--- 9 files changed, 56 insertions(+), 23 deletions(-) diff --git a/build.gradle b/build.gradle index 607d65f..a804775 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,23 @@ plugins { id 'java' + id 'application' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'fr.eni' -version = '0.0.1-SNAPSHOT' +version = '1.0.0' java { sourceCompatibility = '17' } +jar { + manifest { + attributes 'Main-Class': 'fr.eni.enchere.EnchereApplication' + } +} + repositories { mavenCentral() } diff --git a/src/main/java/fr/eni/enchere/bll/CategorieService.java b/src/main/java/fr/eni/enchere/bll/CategorieService.java index 5bf3b10..bcd4dba 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieService.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieService.java @@ -10,5 +10,6 @@ public interface CategorieService { List findAllCategories(); Categorie findCategorieById(int id); void saveCategorie(Categorie categorie); + void updateCategorie(Categorie categorie); void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java index d5cc635..2039e8a 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java @@ -33,6 +33,11 @@ public class CategorieServiceImpl implements CategorieService { categorieRepository.saveCategorie(categorie); } + @Override + public void updateCategorie(Categorie categorie) { + + } + @Override public void deleteCategorie(int id) { categorieRepository.deleteCategorie(id); diff --git a/src/main/java/fr/eni/enchere/controllers/AdminController.java b/src/main/java/fr/eni/enchere/controllers/AdminController.java index e4a36ac..3f93934 100644 --- a/src/main/java/fr/eni/enchere/controllers/AdminController.java +++ b/src/main/java/fr/eni/enchere/controllers/AdminController.java @@ -3,6 +3,7 @@ package fr.eni.enchere.controllers; import fr.eni.enchere.bll.CategorieService; import fr.eni.enchere.bll.UserService; import fr.eni.enchere.bo.Article; +import fr.eni.enchere.bo.Categorie; import fr.eni.enchere.bo.Retrait; import fr.eni.enchere.bo.UserProfil; import jakarta.servlet.http.HttpServletRequest; @@ -10,9 +11,10 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.*; @Controller +@RequestMapping("/admin") public class AdminController { private UserService userService; @@ -23,24 +25,27 @@ public class AdminController { this.categorieService = categorieService; } - @GetMapping( "/admin") + @GetMapping public String viewAdminPanel(Model model) { model.addAttribute("categories", categorieService.findAllCategories()); model.addAttribute("userProfil", userService.listeUtilisateurs()); + model.addAttribute("categorie", new Categorie()); return "admin"; } -// @GetMapping("/admin") -// public String newArticleForm(HttpServletRequest request, Model model) { -// model.addAttribute("categories", categorieService.findAllCategories()); -// model.addAttribute("article", new Article()); -// model.addAttribute("retrait", new Retrait()); -// model.addAttribute("requestURI", request.getRequestURI()); -// //Récupérer l'utilisateur pour set le retrait à son adresse par defaut -// Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); -// String username = authentication.getName(); -// UserProfil userProfile = userService.utilisateurByName(username); -// model.addAttribute("user", userProfile); -// return "admin"; -// } + @PostMapping("/new") + public String ajouterCategorie(@ModelAttribute("categorie") Categorie categorie) { + categorieService.saveCategorie(categorie); + return "redirect:/admin"; + } + + @PostMapping("/update") + public String updateCategorie(@RequestParam("newCategorie") String libelle, @RequestParam("IdCategorie") int idCategorie) { + Categorie categorie = new Categorie(); + categorie.setLibelle(libelle); + categorie.setId(idCategorie); + + return "redirect:/admin"; + } + } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java index 4f7add2..c458a39 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java @@ -8,5 +8,6 @@ public interface CategorieRepository { List findAllCategories(); Categorie findCategorieById(int id); void saveCategorie(Categorie categorie); + void updateCategorie(Categorie categorie); void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java index 336c285..f515228 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java @@ -5,6 +5,8 @@ import fr.eni.enchere.bo.Categorie; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.sql.ResultSet; @@ -16,7 +18,6 @@ public class CategorieRepositoryImpl implements CategorieRepository { private JdbcTemplate jdbcTemplate; private NamedParameterJdbcTemplate namedJdbcTemplate; - private class CategorieRowMapper implements RowMapper { @Override @@ -42,13 +43,19 @@ public class CategorieRepositoryImpl implements CategorieRepository { @Override public Categorie findCategorieById(int id) { - String sql = "SELECT * FROM CATEGORIES WHERE no_categorie = ?"; + String sql = "SELECT * FROM CATEGORIES WHERE no_categorie = ? AND isDelete = 0"; Categorie categorie = jdbcTemplate.queryForObject(sql, new CategorieRowMapper(), id); return categorie; } @Override public void saveCategorie(Categorie categorie) { + String sql = "INSERT INTO CATEGORIES (\t=libelle) VALUES (?)"; + jdbcTemplate.update(sql, categorie.getLibelle()); + } + + @Override + public void updateCategorie(Categorie categorie) { } diff --git a/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java b/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java index 4ba9131..e48eccb 100644 --- a/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java +++ b/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java @@ -9,6 +9,8 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import static javax.management.Query.and; + @Configuration @EnableWebSecurity public class WebSecurityConfig{ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 4fcf5b8..219e581 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,4 +2,5 @@ spring.datasource.url=jdbc:mariadb://91.121.54.36:3306/eni_enchere spring.datasource.username=eni spring.datasource.password=Pa$$w0rd spring.datasource.driver-class-name=org.mariadb.jdbc.Driver -spring.messages.encoding=UTF-8 \ No newline at end of file +spring.messages.encoding=UTF-8 +server.port=8800 \ No newline at end of file diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html index 5b65cfa..37b1256 100644 --- a/src/main/resources/templates/admin.html +++ b/src/main/resources/templates/admin.html @@ -17,21 +17,25 @@ -
- + + +
- +
- +
+ + +

Liste des utilisateurs