Class AdminController
Questo controller gestisce le operazioni di back-office riservate agli amministratori di sistema.
In particolare, fornisce le funzionalità per la gestione delle aziende tenant (modifica, eliminazione)
e la visualizzazione del pannello di controllo principale.
Estende ModuloController per sfruttare la verifica centralizzata dei permessi di accesso ai moduli.
- Since:
- 1.0.0
- Version:
- 2.1.0
- Author:
- Modulink Team
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AziendaServiceprivate final CustomUserDetailsService -
Constructor Summary
ConstructorsConstructorDescriptionAdminController(ModuloService moduloService, CustomUserDetailsService customUserDetailsService, AziendaService aziendaService) Costruttore per l'iniezione delle dipendenze. -
Method Summary
Modifier and TypeMethodDescriptiondeleteAzienda(int id, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) Gestisce l'eliminazione di un'azienda dal sistema.voiddisinstallaModulo(AziendaEntity azienda) Implementazione del metodo astratto per la disinstallazione del modulo.Gestisce la richiesta GET per la pagina principale del pannello amministrativo.saveAzienda(AziendaEntity formAzienda, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) Gestisce la creazione o l'aggiornamento di un'entità Azienda.Methods inherited from class ModuloController
getId, isAccessibleModulo, setId
-
Field Details
-
customUserDetailsService
-
aziendaService
-
-
Constructor Details
-
AdminController
public AdminController(ModuloService moduloService, CustomUserDetailsService customUserDetailsService, AziendaService aziendaService) Costruttore per l'iniezione delle dipendenze.- Parameters:
moduloService- Servizio per la gestione dei moduli.customUserDetailsService- Servizio per il recupero dettagli utente.aziendaService- Servizio per la gestione delle aziende.- Since:
- 1.0.0
-
-
Method Details
-
index
Gestisce la richiesta GET per la pagina principale del pannello amministrativo.Recupera l'elenco di tutte le aziende registrate nel sistema, filtrando eventualmente l'azienda di appartenenza dell'amministratore per prevenire cancellazioni accidentali.
- Parameters:
principal- L'oggetto Principal che rappresenta l'utente loggato.model- Il modello UI per passare i dati alla vista Thymeleaf.- Returns:
- Il nome logico della vista "admin/adminPage" o un redirect in caso di accesso negato.
- Since:
- 1.0.0
-
saveAzienda
@PostMapping("/azienda/save") public String saveAzienda(@ModelAttribute AziendaEntity formAzienda, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) Gestisce la creazione o l'aggiornamento di un'entità Azienda.Se l'ID dell'azienda è 0, viene creata una nuova istanza. Altrimenti, si procede all'aggiornamento dei dati esistenti. Gestisce feedback utente tramite messaggi flash.
- Parameters:
formAzienda- L'oggetto AziendaEntity popolato dai dati del form.redirectAttributes- Attributi per passare messaggi di successo/errore dopo il redirect.- Returns:
- Redirect alla dashboard amministrativa.
- Since:
- 1.1.0
-
deleteAzienda
@PostMapping("/azienda/delete") public String deleteAzienda(@RequestParam("id") int id, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttributes) Gestisce l'eliminazione di un'azienda dal sistema.L'operazione è critica e irreversibile, comportando la cancellazione a cascata di tutti i dati associati (utenti, moduli attivati, dati operativi) grazie ai vincoli di integrità del database.
- Parameters:
id- L'identificativo univoco dell'azienda da eliminare.redirectAttributes- Attributi per il feedback utente.- Returns:
- Redirect alla dashboard amministrativa.
- Since:
- 1.1.0
-
disinstallaModulo
Implementazione del metodo astratto per la disinstallazione del modulo.Poiché questo controller gestisce un modulo di sistema (Core), l'operazione di disinstallazione non è permessa e il metodo non esegue alcuna azione logica, limitandosi a loggare un errore.
- Specified by:
disinstallaModuloin classModuloController- Parameters:
azienda- L'azienda per cui disinstallare il modulo (ignorato).- Since:
- 1.0.0
-