patch session utilisateur

This commit is contained in:
jleroy
2024-04-24 08:50:09 +02:00
6 changed files with 93 additions and 14 deletions

View File

@@ -1,24 +1,22 @@
package fr.eni.enchere.controllers;
import fr.eni.enchere.bo.UserProfil;
import fr.eni.enchere.dal.UserRepository;
import org.springframework.ui.Model;
import fr.eni.enchere.bll.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@Controller()
@RequestMapping("/profile")
public class ProfileController {
@RequestMapping("/profil")
public class ProfilController {
private final UserService userService;
public ProfileController(UserService userService) {
public ProfilController(UserService userService) {
this.userService = userService;
}
@@ -27,7 +25,7 @@ public class ProfileController {
// Obtenez l'authentification actuelle
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
// Vérifiez si l'utilisateur est authentifié
if (!authentication.getName().equals("anonymousUser")) { //Retirer le true pour le bon fonctionnement
if (!authentication.getName().equals("anonymousUser")) {
// Obtenez les détails de l'utilisateur authentifié
String username = authentication.getName();
// Utilisez le service approprié pour récupérer les informations de l'utilisateur à partir du nom d'utilisateur
@@ -35,14 +33,33 @@ public class ProfileController {
// Ajoutez les informations du profil à l'objet Model pour les afficher dans la page HTML
// model.addAttribute("user", new UserProfil());
model.addAttribute("userProfile", userProfile);
return "profile";
return "profil";
}else {
return "accueil";
}
}
@PostMapping("/edit")
public String editProfile(Model model) {
// Obtenez l'authentification actuelle
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
// Vérifiez si l'utilisateur est authentifié
if (!authentication.getName().equals("anonymousUser")) {
// Obtenez les détails de l'utilisateur authentifié
String username = authentication.getName();
// Utilisez le service approprié pour récupérer les informations de l'utilisateur à partir du nom d'utilisateur
UserProfil userProfile = userService.utilisateurByName(username);
// Ajoutez les informations du profil à l'objet Model pour les afficher dans la page HTML
// model.addAttribute("user", new UserProfil());
model.addAttribute("userProfile", userProfile);
return "editProfil";
}else {
return "accueil";
}
}
@PostMapping("/delete")
public String setUser() {
public String deleteUser() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
// Obtenez les détails de l'utilisateur authentifié
String username = authentication.getName();

View File

@@ -17,9 +17,9 @@ public class WebSecurityConfig{
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((requests) -> requests
.requestMatchers("/", "/accueil").permitAll()
.requestMatchers("/accueil", "/login", "/inscription/**", "/searchArticle", "/profile/**", "/change-language").permitAll()
.requestMatchers("/accueil", "/login", "/inscription/**", "/searchArticle", "/article/**", "/change-language", "/profile/**").permitAll()
.requestMatchers("/css/**", "/images/**", "/assets/**", "/img/**", "/js/**").permitAll()
.requestMatchers("/article/**").authenticated()
.requestMatchers("/profile/**").authenticated()
.requestMatchers("/admin").hasRole("ADMIN")
.anyRequest().authenticated())
.formLogin((form) -> form.loginPage("/login").defaultSuccessUrl("/", true))