Class ModuloController

java.lang.Object
com.modulink.Controller.ModuloController
Direct Known Subclasses:
AdminController, AziendaCotroller, CalendarioController, EventoController, GDMController, GDUController, GMARoleController, GRUController, GTMController, NewsController, StoreController, SupportController

public abstract class ModuloController extends Object
Classe astratta di base per tutti i Controller di modulo all'interno dell'ecosistema ModuLink.

Questa classe definisce il contratto fondamentale e le funzionalità condivise per la gestione dei moduli software. Fornisce meccanismi centralizzati per:

  • Identificazione univoca del modulo tramite id.
  • Verifica granulare dei permessi di accesso basata sulla relazione tra Utente, Ruolo e Modulo.
  • Definizione di una procedura di cleanup (disinstallazione) obbligatoria per ogni implementazione.
Since:
1.0.0
Version:
1.5.2
Author:
Modulink Team
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    Identificativo univoco del modulo gestito dal controller.
    private final ModuloService
    Servizio per la logica di business e il controllo accessi dei moduli.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ModuloController(ModuloService moduloService, int id)
    Costruttore per inizializzare il controller con il servizio moduli e l'identificativo specifico.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    Metodo astratto che deve essere implementato per gestire la logica di pulizia dei dati.
    int
    Restituisce l'ID del modulo gestito.
    protected boolean
    Verifica se l'utente specificato ha i permessi necessari per accedere alle risorse di questo modulo.
    void
    setId(int id)
    Imposta l'ID del modulo gestito.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • id

      private int id
      Identificativo univoco del modulo gestito dal controller.
    • moduloService

      private final ModuloService moduloService
      Servizio per la logica di business e il controllo accessi dei moduli.
  • Constructor Details

    • ModuloController

      public ModuloController(ModuloService moduloService, int id)
      Costruttore per inizializzare il controller con il servizio moduli e l'identificativo specifico.
      Parameters:
      moduloService - Il servizio di gestione moduli.
      id - L'ID univoco del modulo (definito nel database).
      Since:
      1.0.0
  • Method Details

    • isAccessibleModulo

      protected boolean isAccessibleModulo(Optional<UtenteEntity> user)
      Verifica se l'utente specificato ha i permessi necessari per accedere alle risorse di questo modulo.

      Il controllo delega al ModuloService la verifica della catena di autorizzazione: 1. Il modulo deve essere attivato per l'azienda dell'utente. 2. L'utente deve possedere un ruolo a cui è stata concessa la pertinenza sul modulo.

      Parameters:
      user - Un Optional contenente l'utente richiedente.
      Returns:
      true se l'accesso è consentito, false altrimenti.
      Since:
      1.0.0
    • getId

      public int getId()
      Restituisce l'ID del modulo gestito.
      Returns:
      L'identificativo numerico del modulo.
      Since:
      1.0.0
    • setId

      public void setId(int id)
      Imposta l'ID del modulo gestito.
      Parameters:
      id - Il nuovo identificativo.
      Since:
      1.0.0
    • disinstallaModulo

      public abstract void disinstallaModulo(AziendaEntity azienda)
      Metodo 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.

      Parameters:
      azienda - L'entità AziendaEntity per cui il modulo viene rimosso.
      Since:
      1.1.0