refacto forget/reset password

This commit is contained in:
Hedi MJID 2022-02-26 19:21:50 +01:00
parent c9fcdb5764
commit d56a795854
2 changed files with 18 additions and 20 deletions

View File

@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import javax.persistence.EntityNotFoundException; import javax.persistence.EntityNotFoundException;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -219,14 +220,16 @@ public class MembreController {
/********************* Gestion Mot de Passe ************************************/ /********************* Gestion Mot de Passe ************************************/
//cette methode ne fonctionne pas parce que ça affiche "trouvé" dans tous les cas //cette methode ne fonctionne pas parce que ça affiche "trouvé" dans tous les cas
@GetMapping("/forgot-password") @PostMapping("/forgot-password")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')") //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> findUserByEmail(@RequestBody Membre findUserByEmail) { public ResponseEntity<?> findUserByEmail(@RequestBody Membre membre) {
Membre resultMembre = null;
try { try {
this.membreService.findUserByEmail(findUserByEmail); resultMembre = membreRepo.chercheEmail(membre.getEmail());
return ResponseEntity.status(HttpStatus.OK).body("Email trouvé !"); String uuid = UUID.randomUUID().toString();
resultMembre.setPassword(uuid);
membreRepo.saveAndFlush(resultMembre);
return ResponseEntity.status(HttpStatus.OK).body(uuid);
} catch (EntityNotFoundException e) { } catch (EntityNotFoundException e) {
return ResponseEntity.status(HttpStatus.OK).body("Email introuvable !"); return ResponseEntity.status(HttpStatus.OK).body("Email introuvable !");
@ -234,22 +237,14 @@ public class MembreController {
} }
@PutMapping("/reset-password/{email}") @PutMapping("/reset-password/{uuid}")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')") //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> updatePassword(@RequestBody String password, @PathVariable String email) throws Exception { public ResponseEntity<?> updatePassword(@RequestBody Membre membre, @PathVariable String uuid) throws Exception {
Membre resultMembre; Membre resultMembre = null;
try { try {
resultMembre = this.membreService.chercheEmail(email); resultMembre = membreRepo.findByUUID(uuid);
resultMembre.setPassword(passwordEncoder.encode(membre.getPassword()));
System.out.println(resultMembre); membreRepo.saveAndFlush(resultMembre);
resultMembre.setPassword(passwordEncoder.encode(password));
System.out.println(password);
this.membreRepo.save(resultMembre);
System.out.println(resultMembre.getPassword());
} catch (Exception e) { } catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage()); return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
} }

View File

@ -21,6 +21,9 @@ public interface MembreRepository extends JpaRepository<Membre, Integer> {
Optional<Membre> findByEmail(String email); Optional<Membre> findByEmail(String email);
@Query(value = "select * from membre where password = :uuid", nativeQuery = true)
Membre findByUUID(@Param("uuid") String uuid);
@Query(value = "select * from membre where email = :email", nativeQuery = true) @Query(value = "select * from membre where email = :email", nativeQuery = true)
Membre chercheEmail(@Param("email") String email); Membre chercheEmail(@Param("email") String email);