Class GDUController
Questo componente rappresenta il pannello di controllo per la gestione del personale aziendale.
Implementa le funzionalità CRUD complete per gli account utente: registrazione nuovi dipendenti,
modifica dei profili esistenti, rimozione utenti e gestione del primo accesso (First Login).
Estende ModuloController (ID Modulo: 0 - modulo core) per la gestione dei permessi.
- Since:
- 1.3.0
- Version:
- 3.0.1
- Author:
- Modulink Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AssociazioneServiceprivate final CustomUserDetailsServiceprivate final EmailServiceprivate final RuoloServiceprivate final String -
Constructor Summary
ConstructorsConstructorDescriptionGDUController(ModuloService moduloService, CustomUserDetailsService customUserDetailsService, RuoloService ruoloService, AssociazioneService associazioneService, String senderEmail, EmailService emailService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptionaddUser(Principal principal, org.springframework.ui.Model model, @Valid NewUserForm newUserForm, org.springframework.validation.BindingResult bindingResults, EditUserForm editUserForm) Crea un nuovo account utente aziendale.dashboardDispatcher(Principal principal, org.springframework.ui.Model model, NewUserForm newUserForm, EditUserForm editUserForm) Visualizza la dashboard di gestione utenti.voiddisinstallaModulo(AziendaEntity azienda) Metodo astratto che deve essere implementato per gestire la logica di pulizia dei dati.editUser(Principal principal, org.springframework.ui.Model model, @Valid EditUserForm editUserForm, org.springframework.validation.BindingResult bindingResults, NewUserForm newUserForm) Modifica i dati di un utente esistente.private StringGenera una password casuale sicura di 12 caratteri.registerNewUser(Principal principal, org.springframework.ui.Model model, String password, String confirmPassword) Gestisce la procedura di primo accesso (First Login).removeUser(Principal principal, org.springframework.ui.Model model, String email, NewUserForm newUserForm, EditUserForm editUserForm) Rimuove un utente dal sistema aziendale.Methods inherited from class ModuloController
getId, isAccessibleModulo, setId
-
Field Details
-
customUserDetailsService
-
ruoloService
-
associazioneService
-
senderEmail
-
emailService
-
-
Constructor Details
-
GDUController
public GDUController(ModuloService moduloService, CustomUserDetailsService customUserDetailsService, RuoloService ruoloService, AssociazioneService associazioneService, @Value("${spring.mail.properties.mail.smtp.from}") String senderEmail, EmailService emailService) Costruttore per l'iniezione delle dipendenze.- Parameters:
moduloService- Servizio moduli.customUserDetailsService- Servizio utenti.ruoloService- Servizio ruoli.associazioneService- Servizio associazioni utente-ruolo.senderEmail- Email mittente per notifiche.emailService- Servizio invio email.- Since:
- 1.3.0
-
-
Method Details
-
dashboardDispatcher
@GetMapping({"dashboard/gdu/","dashboard/gdu"}) public String dashboardDispatcher(Principal principal, org.springframework.ui.Model model, @ModelAttribute NewUserForm newUserForm, @ModelAttribute EditUserForm editUserForm) Visualizza la dashboard di gestione utenti.Carica l'elenco di tutti gli utenti appartenenti all'azienda dell'utente loggato.
- Parameters:
principal- Identità utente.model- Modello UI.newUserForm- DTO per nuovo utente.editUserForm- DTO per modifica utente.- Returns:
- Vista "moduli/gdu/GestioneUtenti" o redirect.
- Since:
- 1.3.0
-
removeUser
@Transactional @PostMapping("dashboard/gdu/remove-user") public String removeUser(Principal principal, org.springframework.ui.Model model, @RequestParam("email") String email, @ModelAttribute NewUserForm newUserForm, @ModelAttribute EditUserForm editUserForm) Rimuove un utente dal sistema aziendale.Esegue controlli di sicurezza per impedire:
- L'eliminazione di utenti appartenenti ad altre aziende (Cross-Tenant check).
- L'auto-eliminazione dell'utente loggato.
- Parameters:
principal- Identità richiedente.model- Modello UI.email- Email dell'utente da eliminare.newUserForm- DTO placeholder.editUserForm- DTO placeholder.- Returns:
- Redirect alla dashboard GDU con esito.
- Since:
- 1.3.0
-
generatePassword
Genera una password casuale sicura di 12 caratteri.- Returns:
- Stringa password.
-
addUser
@Transactional @PostMapping("dashboard/gdu/add-user") public String addUser(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute @Valid NewUserForm newUserForm, org.springframework.validation.BindingResult bindingResults, @ModelAttribute EditUserForm editUserForm) Crea un nuovo account utente aziendale.Esegue i seguenti passaggi:
- Genera una password temporanea sicura.
- Crea l'entità
UtenteEntitye la associa all'azienda. - Assegna il ruolo predefinito ("New User") per forzare il primo accesso.
- Invia una mail di benvenuto con le credenziali temporanee.
- Parameters:
principal- Identità amministratore.model- Modello UI.newUserForm- DTO dati nuovo utente.bindingResults- Esito validazione.editUserForm- DTO placeholder.- Returns:
- Redirect alla dashboard GDU con esito.
- Since:
- 1.3.0
-
editUser
@PostMapping("dashboard/gdu/modify-user") public String editUser(Principal principal, org.springframework.ui.Model model, @Valid @ModelAttribute @Valid EditUserForm editUserForm, org.springframework.validation.BindingResult bindingResults, @ModelAttribute NewUserForm newUserForm) Modifica i dati di un utente esistente.Permette all'amministratore di aggiornare anagrafica e contatti dei dipendenti. Include la possibilità di forzare un reset della password amministrativo.
- Parameters:
principal- Identità amministratore.model- Modello UI.editUserForm- DTO dati modificati.bindingResults- Esito validazione.newUserForm- DTO placeholder.- Returns:
- Redirect alla dashboard GDU con esito.
- Since:
- 1.3.0
-
registerNewUser
@PostMapping("dashboard/gdu/firstlogin") public String registerNewUser(Principal principal, org.springframework.ui.Model model, @RequestParam String password, @RequestParam String confirmPassword) Gestisce la procedura di primo accesso (First Login).Imposta la password definitiva scelta dall'utente e assegna i ruoli standard, completando l'attivazione dell'account.
- Parameters:
principal- Identità utente.model- Modello UI.password- Nuova password.confirmPassword- Conferma password.- Returns:
- Redirect alla dashboard o errore in pagina.
- Since:
- 1.3.0
-
disinstallaModulo
Description copied from class:ModuloControllerMetodo astratto che deve essere implementato per gestire la logica di pulizia dei dati.Viene invocato dal sistema durante la disattivazione o disinstallazione del modulo per una specifica azienda. Deve contenere la logica per rimuovere o archiviare in modo sicuro tutte le entità create dal modulo nel contesto dell'azienda indicata.
- Specified by:
disinstallaModuloin classModuloController- Parameters:
azienda- L'entitàAziendaEntityper cui il modulo viene rimosso.
-