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; 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.*; @Controller @RequestMapping("/admin") public class AdminController { private UserService userService; private CategorieService categorieService; public AdminController(UserService userService, CategorieService categorieService) { this.userService = userService; this.categorieService = categorieService; } @GetMapping public String viewAdminPanel(Model model) { model.addAttribute("categories", categorieService.findAllCategories()); model.addAttribute("userProfil", userService.listeUtilisateurs()); model.addAttribute("categorie", new Categorie()); 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); categorieService.updateCategorie(categorie); return "redirect:/admin"; } @PostMapping("/update/credit") public String updateCreditUser(@RequestParam("newCredit") float credit, @RequestParam("idUser") int idUser) { userService.setCredit(credit, idUser); return "redirect:/admin"; } @PostMapping("/deleteC") public String deleteCategorie(@RequestParam("deleteIdCategorie") int id) { categorieService.deleteCategorie(id); return "redirect:/admin"; } @PostMapping("/delete") public String deleteUser(@RequestParam("userDelete") int id) { userService.deleteUtilisateur(id); return "redirect:/admin"; } @PostMapping("/disabled") public String disabledUser(@RequestParam("userDisabled") int id) { userService.disableUtilisateur(id); return "redirect:/admin"; } }