mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 00:48:49 +00:00
trabajando en el signup. problema con el mismo username aunque este delete at
This commit is contained in:
@ -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";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user