import org.lilie.services.eliot.scolarite.Etablissement
import org.lilie.services.eliot.securite.AutorisationException
import org.lilie.services.eliot.textes.recherchecahierdetextes.CahierDeTextesRechercheService
+import groovy.sql.Sql
+import org.lilie.services.eliot.backoffice.BackofficeConfig
/**
* Façade recouperant les info sur les droits associé à un cahier de textes
// jcok : grailsApplication est un singleton
@SuppressWarnings('GrailsStatelessService')
GrailsApplication grailsApplication
+ def dataSource
protected List<EliotFonctionnalite> getFonctionnalites() {
- List<EliotFonctionnalite> result = []
- result.addAll(TextesFonctionnalite.values().toList())
- return result
+ return TextesFonctionnalite.values().toList()
}
public HashSet getFonctionnalitesAccessibles(SecuriteSession securiteSession) {
)
}
+ if (!hasAcceeATdbase(securiteSession)) {
+ listeFonctionnalites.remove(
+ TextesFonctionnalite.ELIOT_TDBASE
+ )
+ }
+
HashSet fonctionnalitesAccessibles = (HashSet) listeFonctionnalites
return fonctionnalitesAccessibles
}
+
+ private boolean hasAcceeATdbase(SecuriteSession securiteSession) {
+ List<String> uais = securiteSession.etablissementsAccessibles*.uai
+
+ if (uais.size() == 0) {
+ return false
+ }
+
+
+ String query = """
+ select config.id from BackofficeConfig as config
+ WHERE config.uai IN(:uais)
+ AND config.isTdbaseOpen = true
+ """
+
+ return BackofficeConfig.executeQuery(query, [uais: uais]).size() > 0
+ }
+
/**
* Vérifie le droit de consultation des cahiers de textes sur l'établissement
*/