Interface ModuloRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<ModuloEntity, Integer>, org.springframework.data.jpa.repository.JpaRepository<ModuloEntity, Integer>, org.springframework.data.repository.ListCrudRepository<ModuloEntity, Integer>, org.springframework.data.repository.ListPagingAndSortingRepository<ModuloEntity, Integer>, org.springframework.data.repository.PagingAndSortingRepository<ModuloEntity, Integer>, org.springframework.data.repository.query.QueryByExampleExecutor<ModuloEntity>, org.springframework.data.repository.Repository<ModuloEntity, Integer>

public interface ModuloRepository extends org.springframework.data.jpa.repository.JpaRepository<ModuloEntity, Integer>
Interfaccia DAO per l'accesso e la gestione dei dati relativi ai Moduli funzionali.

Estende JpaRepository per fornire operazioni CRUD standard. Include query JPQL specializzate per la risoluzione dei permessi di accesso basati su Ruoli (RBAC) e associazioni Utente-Azienda-Modulo.

Since:
1.0.0
Version:
1.4.2
Author:
Modulink Team
  • Method Summary

    Modifier and Type
    Method
    Description
    Recupera l'elenco dei moduli a cui un determinato utente ha accesso.
    Verifica puntuale se uno specifico modulo è accessibile da un utente.

    Methods inherited from interface org.springframework.data.repository.CrudRepository

    count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlush

    Methods inherited from interface org.springframework.data.repository.ListCrudRepository

    findAll, findAllById, saveAll

    Methods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findBy, findOne
  • Method Details

    • findModuliByUtente

      @Query("SELECT DISTINCT aff.attivazione.modulo FROM PertinenzaEntity aff JOIN AssociazioneEntity ass ON aff.ruolo = ass.ruolo WHERE ass.utente = :utente") List<ModuloEntity> findModuliByUtente(@Param("utente") UtenteEntity utente)
      Recupera l'elenco dei moduli a cui un determinato utente ha accesso.

      La query attraversa la catena di relazioni: Pertinenza (Modulo-Ruolo) -> Associazione (Ruolo-Utente). Restituisce solo i moduli per i quali l'utente possiede un ruolo attivo che ne prevede l'utilizzo (pertinenza).

      Parameters:
      utente - L'entità utente per cui verificare gli accessi.
      Returns:
      Lista di ModuloEntity accessibili.
      Since:
      1.2.0
    • isModuloAccessible

      @Query("SELECT DISTINCT aff.attivazione.modulo FROM PertinenzaEntity aff JOIN AssociazioneEntity ass ON aff.ruolo = ass.ruolo WHERE ass.utente = :utente AND aff.id_modulo= :id") List<ModuloEntity> isModuloAccessible(@Param("id") int id, @Param("utente") UtenteEntity utente)
      Verifica puntuale se uno specifico modulo è accessibile da un utente.

      Esegue un controllo di intersezione tra i moduli abilitati per i ruoli dell'utente e l'ID del modulo richiesto. Se la lista restituita non è vuota, l'accesso è consentito.

      Parameters:
      id - L'ID del modulo da verificare.
      utente - L'utente che richiede l'accesso.
      Returns:
      Lista contenente il modulo se accessibile, altrimenti vuota.
      Since:
      1.2.5