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 TypeMethodDescriptionfindModuliByUtente(UtenteEntity utente) Recupera l'elenco dei moduli a cui un determinato utente ha accesso.isModuloAccessible(int id, UtenteEntity utente) 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, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods 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
ModuloEntityaccessibili. - 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
-