trabajando en el signup. problema con el mismo username aunque este delete at

This commit is contained in:
2025-10-03 18:30:26 +02:00
parent cc49732531
commit d9c4f16cf0
11 changed files with 309 additions and 107 deletions

View File

@ -4,11 +4,26 @@ import java.util.Locale;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
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.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.imprimelibros.erp.login.dto.SignupForm;
import jakarta.validation.Valid;
@Controller
public class LoginController {
private final SignupService signupService;
public LoginController(SignupService signupService) {
this.signupService = signupService;
}
@GetMapping("/login")
public String index(Model model, Locale locale) {
model.addAttribute("form", "_login");
@ -17,9 +32,44 @@ public class LoginController {
@GetMapping("/signup")
public String signup(Model model, Locale locale) {
if (!model.containsAttribute("signupForm")) {
model.addAttribute("signupForm", new SignupForm());
}
model.addAttribute("form", "_signup");
return "imprimelibros/login/login";
}
@PostMapping("/signup")
public String doSignup(@Valid @ModelAttribute("signupForm") SignupForm form,
BindingResult br,
RedirectAttributes ra,
Locale locale) {
if (br.hasErrors()) {
ra.addFlashAttribute("org.springframework.validation.BindingResult.signupForm", br);
ra.addFlashAttribute("signupForm", form);
ra.addFlashAttribute("signup_error", "Revisa el formulario");
return "redirect:/signup";
}
try {
signupService.register(form, locale);
ra.addFlashAttribute("info", "Te hemos enviado un email para confirmar tu correo.");
return "redirect:/login";
} catch (IllegalArgumentException ex) {
ra.addFlashAttribute("signup_error", ex.getMessage());
ra.addFlashAttribute("signupForm", form);
return "redirect:/signup";
}
}
@GetMapping("/verify")
public String verify(@RequestParam("token") String token, RedirectAttributes ra) {
boolean ok = signupService.verify(token);
if (ok) {
ra.addFlashAttribute("info", "¡Cuenta verificada! Ya puedes iniciar sesión.");
} else {
ra.addFlashAttribute("danger", "Enlace inválido o caducado. Solicita uno nuevo.");
}
return "redirect:/login";
}
}