Merge branch 'Johan' into Olivier
This commit is contained in:
@@ -12,14 +12,15 @@ public class UserProfil {
|
|||||||
private String rue;
|
private String rue;
|
||||||
private String code_postal;
|
private String code_postal;
|
||||||
private String ville;
|
private String ville;
|
||||||
private String password; //Voir la sécurité du mot de passe
|
private String password;
|
||||||
|
private String confirmPassword;
|
||||||
private float credit;
|
private float credit;
|
||||||
private boolean isAdmin;
|
private boolean isAdmin;
|
||||||
|
|
||||||
//Constructeur
|
//Constructeur
|
||||||
public UserProfil(){}
|
public UserProfil(){}
|
||||||
|
|
||||||
public UserProfil(int id, String pseudo, String nom, String prenom, String email, String telephone, String rue, String code_postal, String ville, String password, int credit, boolean isAdmin) {
|
public UserProfil(int id, String pseudo, String nom, String prenom, String email, String telephone, String rue, String code_postal, String ville, String password, String confirmPassword, int credit, boolean isAdmin) {
|
||||||
setId(id);
|
setId(id);
|
||||||
setPrenom(prenom);
|
setPrenom(prenom);
|
||||||
setNom(nom);
|
setNom(nom);
|
||||||
@@ -30,6 +31,7 @@ public class UserProfil {
|
|||||||
setCode_postal(code_postal);
|
setCode_postal(code_postal);
|
||||||
setVille(ville);
|
setVille(ville);
|
||||||
setPassword(password);
|
setPassword(password);
|
||||||
|
setConfirmPassword(confirmPassword);
|
||||||
setCredit(credit);
|
setCredit(credit);
|
||||||
setAdmin(isAdmin);
|
setAdmin(isAdmin);
|
||||||
}
|
}
|
||||||
@@ -115,6 +117,14 @@ public class UserProfil {
|
|||||||
this.password = password;
|
this.password = password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getConfirmPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfirmPassword(String confirmPassword) {
|
||||||
|
this.confirmPassword = confirmPassword;
|
||||||
|
}
|
||||||
|
|
||||||
public float getCredit() {
|
public float getCredit() {
|
||||||
return credit;
|
return credit;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package fr.eni.enchere.controllers;
|
package fr.eni.enchere.controllers;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.validation.BindingResult;
|
import org.springframework.validation.BindingResult;
|
||||||
import fr.eni.enchere.bll.UserService;
|
import fr.eni.enchere.bll.UserService;
|
||||||
import fr.eni.enchere.bo.UserProfil;
|
import fr.eni.enchere.bo.UserProfil;
|
||||||
@@ -14,9 +17,11 @@ public class InscriptionController {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
private PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
public InscriptionController(UserService userService) {
|
public InscriptionController(UserService userService, PasswordEncoder passwordEncoder) {
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
|
this.passwordEncoder = passwordEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@@ -26,10 +31,33 @@ public class InscriptionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/newUser")
|
@PostMapping("/newUser")
|
||||||
public String setUser(@ModelAttribute UserProfil user) {
|
public String setUser(@ModelAttribute("userProfile") UserProfil userProfile, BindingResult result) {
|
||||||
//Ajouter vérification du formulaire -> @RequestParam("confirmPassword") String confirmPassword
|
// Obtenez l'authentification actuelle
|
||||||
userService.setUtilisateur(user);
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||||
return "redirect:/accueil";
|
// 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 currentUserProfile = userService.utilisateurByName(username);
|
||||||
|
// Vérifiez si le mot de passe actuel correspond à celui stocké dans la base de données
|
||||||
|
if (!passwordEncoder.matches(userProfile.getPassword(), currentUserProfile.getPassword())) {
|
||||||
|
// Mot de passe actuel incorrect, renvoyer une erreur
|
||||||
|
result.rejectValue("currentPassword", "invalid", "Mot de passe actuel incorrect");
|
||||||
|
return "editProfil"; // Rediriger vers la page de modification du profil avec une erreur
|
||||||
|
}
|
||||||
|
// Vérifiez si le nouveau mot de passe et sa confirmation correspondent
|
||||||
|
if (!userProfile.getPassword().equals(userProfile.getConfirmPassword())) {
|
||||||
|
// Mauvaise correspondance entre le nouveau mot de passe et sa confirmation, renvoyer une erreur
|
||||||
|
result.rejectValue("confirmPassword", "invalid", "La confirmation du mot de passe ne correspond pas au nouveau mot de passe");
|
||||||
|
return "editProfil"; // Rediriger vers la page de modification du profil avec une erreur
|
||||||
|
}
|
||||||
|
// Mettez à jour le mot de passe de l'utilisateur avec le nouveau mot de passe
|
||||||
|
userService.setUtilisateur(currentUserProfile);
|
||||||
|
return "redirect:/profil"; // Rediriger vers la page de profil après la modification réussie
|
||||||
|
} else {
|
||||||
|
return "accueil";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,34 +106,41 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- Champ Mot de passe-->
|
<!-- Champ Mot de passe actuel-->
|
||||||
<div class="champ-saisie">
|
<div class="champ-saisie">
|
||||||
<label for="password">Mot de passe actuel: </label>
|
<label for="currentPassword">Mot de passe actuel: </label>
|
||||||
<div>
|
<div>
|
||||||
<input type="password" th:field="*{password}" id="password" />
|
<input type="password" th:field="*{currentPassword}" id="currentPassword" />
|
||||||
</div>
|
</div>
|
||||||
<span style="color: red;" th:if="${#fields.hasErrors('password')}">
|
<span style="color: red;" th:if="${#fields.hasErrors('currentPassword')}">
|
||||||
<ul>
|
<ul>
|
||||||
<li th:each="erreur: ${#fields.errors('password')}" th:text="${erreur}"></li>
|
<li th:each="erreur: ${#fields.errors('currentPassword')}" th:text="${erreur}"></li>
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Champ Nouveau mot de passe-->
|
||||||
<div class="champ-saisie">
|
<div class="champ-saisie">
|
||||||
<label for="password">Nouveau mot de passe: </label>
|
<label for="newPassword">Nouveau mot de passe: </label>
|
||||||
<div>
|
<div>
|
||||||
<input type="password" th:field="*{password}" id="password" />
|
<input type="password" th:field="*{newPassword}" id="newPassword" />
|
||||||
</div>
|
</div>
|
||||||
<span style="color: red;" th:if="${#fields.hasErrors('password')}">
|
<span style="color: red;" th:if="${#fields.hasErrors('newPassword')}">
|
||||||
<ul>
|
<ul>
|
||||||
<li th:each="erreur: ${#fields.errors('password')}" th:text="${erreur}"></li>
|
<li th:each="erreur: ${#fields.errors('newPassword')}" th:text="${erreur}"></li>
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Champ Confirmation du nouveau mot de passe-->
|
||||||
<div class="champ-saisie">
|
<div class="champ-saisie">
|
||||||
<label for="password">Confirmation: </label>
|
<label for="confirmPassword">Confirmation du nouveau mot de passe: </label>
|
||||||
<div>
|
<div>
|
||||||
<input type="password" id="password" />
|
<input type="password" th:field="*{confirmPassword}" id="confirmPassword" />
|
||||||
</div>
|
</div>
|
||||||
|
<span style="color: red;" th:if="${#fields.hasErrors('confirmPassword')}">
|
||||||
|
<ul>
|
||||||
|
<li th:each="erreur: ${#fields.errors('confirmPassword')}" th:text="${erreur}"></li>
|
||||||
|
</ul>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div>Crédits: <span th:text="${userProfile.credit}"></span></div>
|
<div>Crédits: <span th:text="${userProfile.credit}"></span></div>
|
||||||
<!-- Input cacher qui permet de stocker l'id du compte utilisateur à mettre à jour -->
|
<!-- Input cacher qui permet de stocker l'id du compte utilisateur à mettre à jour -->
|
||||||
|
|||||||
Reference in New Issue
Block a user