import org.lilie.services.eliot.applications.absences.AbsencesFonctionnalite
import org.lilie.services.eliot.constantes.ConstController
import org.lilie.services.eliot.absences.AbstractIncidentPunitionSanctionController
-import org.lilie.services.eliot.absences.AbsencesDroitService
+import org.lilie.services.eliot.applications.absences.AbsencesDroitService
import org.lilie.services.eliot.securite.perimetre.PerimetreEtablissement
/**
] as JSON
Locale locale = RCU.getLocale(request)
- definitTypesProtagonistes(modele, locale)
+ modele.activeCUD = droitsService.hasDroitFonctionnalite(
+ getSecuriteSession(),
+ AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
+ )
+ modele.autoriseSaisieIncident = isAutoriseSaisieIncident(securiteSession, modele.activeCUD)
+
+ boolean restreintTypesProtagonistes =
+ !modele.activeCUD && modele.autoriseSaisieIncident
+
+ definitTypesProtagonistes(modele, locale, restreintTypesProtagonistes)
modele.profils = enumMarshallerService.getEnumData(ProfilCenseur, locale) as JSON
modele.etablissements = getEtablissementsAccessiblesInfo() as JSON
modele.message = getMessageModification(isModeModification, isAnnuler)
}
- modele.incidentAModifieInfo = getIncidentModificationInfo(incident, getSecuriteSession().defaultAutorite.id) as JSON
+ def incidentAModifieInfo = getIncidentModificationInfo(incident, getSecuriteSession().defaultAutorite.id)
PreferencesEtablissementAbsences preferences = getPreferencesEtablissementCourant()
Locale locale = RCU.getLocale(request)
- definitTypesProtagonistes(modele, locale)
+ modele.activeCUD = droitsService.hasDroitFonctionnalite(
+ getSecuriteSession(),
+ AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
+ )
+ modele.autoriseSaisieIncident = isAutoriseSaisieIncident(securiteSession, modele.activeCUD)
+
+ boolean restreintTypesProtagonistes =
+ !modele.activeCUD && (modele.autoriseSaisieIncident && incidentAModifieInfo.isUtilisateurCourantAuteur)
+
+ definitTypesProtagonistes(modele, locale, restreintTypesProtagonistes)
+
+ modele.incidentAModifieInfo = incidentAModifieInfo as JSON
modele.profils = enumMarshallerService.getEnumData(ProfilCenseur, locale) as JSON
modele.etablissements = getEtablissementsAccessiblesInfo() as JSON
modele.dataNaturesIncident = getAllTypesIncident() as JSON
modele.dataPartenairesAPrevenir = getAllPartenairesAPrevenir() as JSON
- modele.activeCUD = droitsService.hasDroitFonctionnalite(
- getSecuriteSession(),
- AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
- )
-
- modele.autoriseSaisieIncident = isAutoriseSaisieIncident(securiteSession, modele.activeCUD)
-
if(params.criteres != null) {
modele.criteres = params.criteres
}
return protagonistesModInfo
}
- private void definitTypesProtagonistes(Map modele, Locale locale) {
+ private void definitTypesProtagonistes(Map modele, Locale locale, boolean restreintTypes) {
- if (droitsService.hasPerimetre(securiteSession, PerimetreEtablissement)) {
-
- modele.dataTypesProtagoniste = enumMarshallerService.getEnumData(TypeProtagonisteIncident, locale) as JSON
-
- } else {
+ if (restreintTypes) {
List<Map> typeProtagonistes = []
typeProtagonistes.add(
[id: TypeProtagonisteIncident.ELEVE.getCode(),
- libelle: message(code: TypeProtagonisteIncident.ELEVE
- .getLibelle())])
+ libelle: message(code: TypeProtagonisteIncident.ELEVE.getLibelle())])
modele.dataTypesProtagoniste = typeProtagonistes as JSON
+ } else {
+
+ modele.dataTypesProtagoniste = enumMarshallerService.getEnumData(TypeProtagonisteIncident, locale) as JSON
+
}
}