Class EditUserController
java.lang.Object
com.modulink.Controller.EditUser.EditUserController
Controller per la gestione della modifica del profilo utente.
Fornisce le funzionalità per permettere agli utenti autenticati di aggiornare i propri dati anagrafici, cambiare la password e gestire l'immagine del profilo (caricamento/rimozione). Implementa logiche di validazione di sicurezza per prevenire modifiche non autorizzate (es. cambio email non consentito).
- Since:
- 1.2.0
- Version:
- 2.2.0
- Author:
- Modulink Team
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionEditUserController(CustomUserDetailsService customUserDetailsService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptiongetEditUserPage(Principal principal, org.springframework.ui.Model model, EditUserForm editUserForm) Prepara e visualizza la pagina di modifica del profilo.updateUser(Principal principal, org.springframework.ui.Model model, @Valid EditUserForm editUserForm, org.springframework.validation.BindingResult bindingResult) Processa la richiesta di aggiornamento dei dati utente.
-
Field Details
-
customUserDetailsService
-
-
Constructor Details
-
EditUserController
Costruttore per l'iniezione delle dipendenze.- Parameters:
customUserDetailsService- Servizio per la gestione degli utenti.- Since:
- 1.2.0
-
-
Method Details
-
getEditUserPage
@GetMapping({"/dashboard/edit-user","/dashboard/edit-user/"}) public String getEditUserPage(Principal principal, org.springframework.ui.Model model, @ModelAttribute EditUserForm editUserForm) Prepara e visualizza la pagina di modifica del profilo.Popola il form con i dati attuali dell'utente loggato recuperati dal Model (popolato dall'interceptor globale).
- Parameters:
principal- L'utente loggato.model- Il modello UI contenente l'utente corrente.editUserForm- Il DTO da popolare per il binding del form.- Returns:
- Il nome della vista "user/edit-profile" o un redirect se non autenticato.
- Since:
- 1.2.0
-
updateUser
@PostMapping("/dashboard/update-user") public String updateUser(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute @Valid EditUserForm editUserForm, org.springframework.validation.BindingResult bindingResult) throws IOException Processa la richiesta di aggiornamento dei dati utente.Esegue diverse operazioni critiche:
- Validazione dei campi obbligatori e del formato (telefono, lunghezza stringhe).
- Verifica della corrispondenza delle password se viene richiesto un cambio password.
- Controllo di integrità sull'email (non modificabile).
- Gestione del filesystem per l'upload o la rimozione dell'immagine di profilo.
- Aggiornamento persistente dell'entità utente.
- Parameters:
principal- Utente loggato.model- Modello UI.editUserForm- DTO con i nuovi dati inviati.bindingResult- Risultati della validazione standard.- Returns:
- Ricarica la pagina con messaggio di successo o errore.
- Throws:
IOException- In caso di errori I/O durante la gestione del file immagine.- Since:
- 1.2.0
-