Class EditUserController

java.lang.Object
com.modulink.Controller.EditUser.EditUserController

@Controller public class EditUserController extends Object
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 Details

  • Constructor Details

    • EditUserController

      public EditUserController(CustomUserDetailsService customUserDetailsService)
      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