fix merge

This commit is contained in:
Hedi 2022-01-21 18:22:14 +01:00
commit 0ea451d9ea
5 changed files with 86 additions and 34 deletions

View File

@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.persistence.EntityNotFoundException; import javax.persistence.EntityNotFoundException;
@ -30,6 +31,9 @@ public class MembreController {
@Autowired @Autowired
private MembreService membreService; private MembreService membreService;
@Autowired
private BCryptPasswordEncoder passwordEncoder;
@ResponseBody @ResponseBody
public String home() public String home()
{ {
@ -60,6 +64,45 @@ public class MembreController {
return membreService.findAllUsers().stream().map(appUser -> new MembreDto(appUser.getEmail(), appUser.getRoleList())).collect(Collectors.toList()); return membreService.findAllUsers().stream().map(appUser -> new MembreDto(appUser.getEmail(), appUser.getRoleList())).collect(Collectors.toList());
} }
//cette methode ne fonctionne pas parce que ça affiche "trouvé" dans tous les cas
@GetMapping("/forgot-password")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> findUserByEmail(@RequestBody Membre findUserByEmail) {
try {
this.membreService.findUserByEmail(findUserByEmail);
return ResponseEntity.status(HttpStatus.OK).body("Email trouvé !");
} catch (EntityNotFoundException e) {
return ResponseEntity.status(HttpStatus.OK).body("Email introuvable !");
}
}
@PutMapping("/reset-password/{email}")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> updatePassword(@RequestBody String password, @PathVariable String email) throws Exception {
Membre resultMembre;
try {
resultMembre = this.membreService.chercheEmail(email);
System.out.println(resultMembre);
resultMembre.setPassword(passwordEncoder.encode(password));
System.out.println(password);
this.membreRepo.save(resultMembre);
System.out.println(resultMembre.getPassword());
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}
return ResponseEntity.status(HttpStatus.OK).body(resultMembre);
}
//Récupérer les informations d'un membre par son ID //Récupérer les informations d'un membre par son ID
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")

View File

@ -33,10 +33,10 @@ public class Membre {
private String isAdmin; private String isAdmin;
private String couleur; private String couleur;
private String smiley; private String smiley;
// @ManyToOne // @ManyToOne
// @JoinColumn(name="TEAM_ID") // @JoinColumn(name="TEAM_ID")
// @JsonIgnore // @JsonIgnore
@ManyToOne @ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name="TEAM_ID") @JoinColumn(name="TEAM_ID")
@JsonIgnoreProperties("membre") @JsonIgnoreProperties("membre")
private Team team; private Team team;
@ -44,24 +44,17 @@ public class Membre {
public Membre() { public Membre() {
} }
public Membre(String nom, String prenom, LocalDate dateNaissance, @NotNull String email, @NotNull String password, String isAdmin, String couleur, String smiley, Team team, List<Role> roleList) { public Membre(String nom, String prenom, String couleur, LocalDate dateNaissance, Team team, @NotNull String email, @NotNull String password, List<Role> roleList) {
this.nom = nom; this.nom = nom;
this.prenom = prenom; this.prenom = prenom;
this.couleur = couleur;
this.dateNaissance = dateNaissance; this.dateNaissance = dateNaissance;
this.email = email; this.email = email;
this.password = password; this.password = password;
this.isAdmin = isAdmin;
this.couleur = couleur;
this.smiley = smiley;
this.team = team; this.team = team;
this.roleList=roleList; this.roleList=roleList;
} }
public Membre(@NotNull String email, @NotNull String password, List<Role> roleList) {
this.email = email;
this.password = password;
this.roleList=roleList;
}
public int getId() { public int getId() {
@ -73,6 +66,12 @@ public class Membre {
public String getNom() { public String getNom() {
return nom; return nom;
} }
public String getCouleur() {
return couleur;
}
public void setCouleur(String couleur) {
this.couleur = couleur;
}
public void setNom(String nom) { public void setNom(String nom) {
this.nom = nom; this.nom = nom;
} }
@ -114,22 +113,6 @@ public class Membre {
this.team = team; this.team = team;
} }
public String getCouleur() {
return couleur;
}
public void setCouleur(String couleur) {
this.couleur = couleur;
}
public String getSmiley() {
return smiley;
}
public void setSmiley(String smiley) {
this.smiley = smiley;
}
public List<Role> getRoleList() { public List<Role> getRoleList() {
return roleList; return roleList;
} }

View File

@ -1,9 +1,13 @@
package fr.organizee.repository; package fr.organizee.repository;
import fr.organizee.model.Contact;
import fr.organizee.model.Membre; import fr.organizee.model.Membre;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
@ -12,7 +16,12 @@ public interface MembreRepository extends JpaRepository<Membre, Integer> {
Optional<Membre> findByEmail(String email); Optional<Membre> findByEmail(String email);
@Query(value = "select * from membre where email = :email", nativeQuery = true)
Membre chercheEmail(@Param("email") String email);
boolean existsByEmail(String email); boolean existsByEmail(String email);
void deleteByEmail(String email); void deleteByEmail(String email);
} }

View File

@ -13,7 +13,7 @@ import fr.organizee.model.Membre;
public interface MembreService { public interface MembreService {
/** /**
* Methode qui permet à un utilisateur de se connecter. * Methode qui permet à un utilisateur de se connecter.
* @param email : nom de l'utilisateur. * @param email : nom de l'utilisateur.
* @param password : mot de passe de l'utilisateur. * @param password : mot de passe de l'utilisateur.
* @returnun JWT si credentials est valide, throws InvalidCredentialsException otherwise. * @returnun JWT si credentials est valide, throws InvalidCredentialsException otherwise.
@ -24,11 +24,12 @@ public interface MembreService {
/** /**
* Methode qui permet de s'inscrire. * Methode qui permet de s'inscrire.
* @param membre nouvel utilisateur. * @param membre nouvel utilisateur.
* @return un JWT si user n'existe pas ©  ! * @return un JWT si user n'existe pas © !
* @throws ExistingUsernameException * @throws ExistingUsernameException
*/ */
String signup(Membre membre) throws ExistingUsernameException; String signup(Membre membre) throws ExistingUsernameException;
/** /**
* Methode qui retourne tous les utilisateurs de la bd * Methode qui retourne tous les utilisateurs de la bd
* @return the list of all application users. * @return the list of all application users.
@ -36,10 +37,14 @@ public interface MembreService {
List<Membre> findAllUsers(); List<Membre> findAllUsers();
/** /**
* Methode qui retourne un utilisateur à partir de son username * Methode qui retourne un utilisateur à partir de son username
* @param email the username to look for. * @param email the username to look for.
* @return an Optional object containing user if found, empty otherwise. * @return an Optional object containing user if found, empty otherwise.
*/ */
Optional<Membre> findUserByEmail(String email); Optional<Membre> findUserByEmail(Membre membre);
Optional<Membre> findByEmail(String email);
Membre chercheEmail(String email);
} }

View File

@ -48,7 +48,7 @@ public class MembreServiceImpl implements MembreService {
@Override @Override
public String signup(Membre membre) throws ExistingUsernameException { public String signup(Membre membre) throws ExistingUsernameException {
if (!membreRepository.existsByEmail(membre.getEmail())) { if (!membreRepository.existsByEmail(membre.getEmail())) {
Membre membreToSave = new Membre(membre.getEmail(), passwordEncoder.encode(membre.getPassword()), membre.getRoleList()); Membre membreToSave = new Membre(membre.getNom(), membre.getPrenom(), membre.getCouleur(), membre.getDateNaissance(), membre.getTeam(), membre.getEmail(), passwordEncoder.encode(membre.getPassword()), membre.getRoleList());
membreRepository.save(membreToSave); membreRepository.save(membreToSave);
return jwtTokenProvider.createToken(membre.getEmail(), membre.getRoleList()); return jwtTokenProvider.createToken(membre.getEmail(), membre.getRoleList());
} else { } else {
@ -62,8 +62,20 @@ public class MembreServiceImpl implements MembreService {
} }
@Override @Override
public Optional<Membre> findUserByEmail(String email) { public Optional<Membre> findUserByEmail(Membre membre) {
return membreRepository.findByEmail(email); return this.membreRepository.findByEmail(membre.getEmail());
} }
@Override
public Optional<Membre> findByEmail(String email) {
return this.membreRepository.findByEmail(email);
}
@Override
public Membre chercheEmail(String email) {
return this.membreRepository.chercheEmail(email);
}
} }