Class AdminController

java.lang.Object
com.modulink.Controller.ModuloController
com.modulink.Controller.AdminModules.Manage.AdminController

@Controller @RequestMapping("/dashboard/admin") public class AdminController extends ModuloController
Controller per la gestione amministrativa globale della piattaforma ModuLink.

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 Details

  • 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

      @GetMapping({"/",""}) public String index(Principal principal, org.springframework.ui.Model model)
      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

      public void disinstallaModulo(AziendaEntity azienda)
      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:
      disinstallaModulo in class ModuloController
      Parameters:
      azienda - L'azienda per cui disinstallare il modulo (ignorato).
      Since:
      1.0.0