Correction validation all formulaire

This commit is contained in:
jleroy
2024-04-25 10:44:58 +02:00
parent eaa5a41b88
commit c25f03de15
6 changed files with 46 additions and 2 deletions

View File

@@ -8,6 +8,8 @@ public interface UserService {
List<UserProfil> listeUtilisateurs();
UserProfil utilisateurById(int id);
UserProfil utilisateurByName(String username);
List<String> listPseudo();
List<String> listEmail();
void setUtilisateur(UserProfil utilisateur);
void deleteUtilisateur(int id);
}

View File

@@ -30,6 +30,16 @@ public class UserServiceImpl implements UserService {
return userRepository.findByUsername(username);
}
@Override
public List<String> listPseudo() {
return userRepository.findAllUsernames();
}
@Override
public List<String> listEmail() {
return userRepository.findAllEmail();
}
@Override
public void setUtilisateur(UserProfil utilisateur) {
userRepository.save(utilisateur);

View File

@@ -11,6 +11,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequestMapping("/inscription")
public class InscriptionController {
@@ -32,6 +34,21 @@ public class InscriptionController {
@PostMapping("/newUser")
public String setUser(@ModelAttribute("userProfile") UserProfil userProfile, BindingResult result) {
// Vérifier si le pseudo existe déjà
List<String> allUsernames = userService.listPseudo();
if (allUsernames.contains(userProfile.getPseudo())) {
result.rejectValue("pseudo", "error.userProfile", "Ce pseudo est déjà utilisé.");
}
// Vérifier si l'e-mail existe déjà
List<String> allEmails = userService.listEmail();
if (allEmails.contains(userProfile.getEmail())) {
result.rejectValue("email", "error.userProfile", "Cet e-mail est déjà utilisé.");
}
// Si des erreurs de validation sont détectées, retourner à la page de création de compte
if (result.hasErrors()) {
return "inscription";
}
// Sinon, enregistrer l'utilisateur et rediriger vers la page de connexion
userService.setUtilisateur(userProfile);
return "redirect:/login";
}

View File

@@ -8,6 +8,8 @@ public interface UserRepository {
List<UserProfil> findAll();
UserProfil findById(int id);
UserProfil findByUsername(String username);
List<String> findAllUsernames();
List<String> findAllEmail();
void save(UserProfil utilisateur);
void delete(int id);
}

View File

@@ -59,6 +59,19 @@ public class UserRepositoryImpl implements UserRepository {
return user;
}
@Override
public List<String> findAllUsernames() {
String sql = "SELECT pseudo FROM UTILISATEURS WHERE isDelete = 0";
List<String> usernames = jdbcTemplate.queryForList(sql, String.class);
return usernames;
}
@Override
public List<String> findAllEmail() {
String sql = "SELECT email FROM UTILISATEURS WHERE isDelete = 0";
List<String> email = jdbcTemplate.queryForList(sql, String.class);
return email;
}
@Override
public List<UserProfil> findAll() {

View File

@@ -107,7 +107,7 @@
</span>
</div>
<div class="champ-saisie">
<label for="password" th:text="#{re}">Mot de passe: </label>
<label for="password">Mot de passe: </label>
<div>
<input type="password" th:field="*{password}" id="password" />
</div>
@@ -118,7 +118,7 @@
</span>
</div>
<div class="champ-saisie">
<label for="confirmPassword" th:text="#{}">Confirmation du mot de passe: </label>
<label for="confirmPassword">Confirmation du mot de passe: </label>
<div>
<input type="password" id="confirmPassword" />
</div>