import org.lilie.services.eliot.absences.Motif
import org.lilie.services.eliot.securite.impl.Autorite
import org.lilie.services.eliot.absences.consultation.ConsultationService
+import org.lilie.services.eliot.absences.AbsencesDroitService
/**
* @author ywan
EnumMarshallerService enumMarshallerService
PlageHoraireService plageHoraireService
ConsultationService consultationService
+ AbsencesDroitService absencesDroitService
/**
* Page de consultations des punitions
getSecuriteSession(),
AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
)
+ modele.autoriseSaisiePunition = isAutoriseSaisiePunition(securiteSession, modele.activeCUD)
if (params.criteres != null) {
modele.criteres = params.criteres
*/
def afficheCreation = {
// Vérifie les drois d'accès à la page
- verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD)
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseSaisiePunition(getSecuriteSession())
+ )
Boolean isAnnuler = null
if (params.isAnnuler) {
]
} as JSON
+ modele.activeCUD = droitsService.hasDroitFonctionnalite(
+ getSecuriteSession(),
+ AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
+ )
+ modele.autoriseSaisiePunition = isAutoriseSaisiePunition(securiteSession, modele.activeCUD)
+ modele.autoriseSaisieRetenue = isAutoriseSaisieRetenue(securiteSession, modele.activeCUD)
+
if (params.criteres != null) {
modele.criteres = params.criteres
}
Punition punition = Punition.get(Long.parseLong(params.id))
+ Boolean isUtilisateurCourantAuteur = null
+ if (punition.auteur){
+ isUtilisateurCourantAuteur = (getSecuriteSession().defaultAutorite.id == punition.auteur.id)
+ }
+
Map punitionAModifierInfo = [
id: isDupliquer == true ? null : punition.id,
date: formateDate(punition.date),
censeurNom: punition.censeur.nomAffichage(),
description: punition.description ?: '',
incidentId: isDupliquer == true ? null : (punition.incidentId ?: null),
- isAbsenceLiee: punition.absenceLiee
+ isAbsenceLiee: punition.absenceLiee,
+ isUtilisateurCourantAuteur: isUtilisateurCourantAuteur
]
if (punition.absenceLiee) {
modele.punitionAModifierInfo = punitionAModifierInfo as JSON
- modele.activeCRUD = droitsService.hasDroitFonctionnalite(
+ modele.activeCUD = droitsService.hasDroitFonctionnalite(
getSecuriteSession(),
AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD
)
+ modele.autoriseSaisiePunition = isAutoriseSaisiePunition(securiteSession, modele.activeCUD)
+ modele.autoriseSaisieRetenue = isAutoriseSaisieRetenue(securiteSession, modele.activeCUD)
if (params.criteres != null) {
modele.criteres = params.criteres
def supprimePunition = {
// Vérifie les droits d'accès à la page
- verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD)
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseSaisiePunition(getSecuriteSession())
+ )
Map resultats = [:]
Punition punition = Punition.get(Long.parseLong(params.id))
verifieDroitAccesObjetDomaine(punition.eleve)
if (punition) {
+ // vérifie les droits de suppression de la punition
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseUDPunition(getSecuriteSession(), punition)
+ )
try {
absencesPunitionService.supprimePunition(punition)
*/
@SuppressWarnings('CatchException')
def enregistrePunition = {
- verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD)
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseSaisiePunition(getSecuriteSession())
+ )
Map resultat
Punition punition
Long punitionId = null
punition = Punition.get(punitionParams.id)
punitionId = punition.id
- verifieDroitAccesObjetDomaine(punition.eleve)
+ // vérifie les droits de modification de la punition
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseUDPunition(getSecuriteSession(), punition)
+ )
+ boolean isAutoriseUDRetenue = isAutoriseUDRetenue(getSecuriteSession(), punition)
+
+ Punition punitionAModifier = absencesPunitionService.modifiePunition(punition, punitionParams, isAutoriseUDRetenue)
+
+ if (isAutoriseUDRetenue){
+ absencesPunitionService.modifieAbsences(punitionAModifier, punitionParams)
+ }
- absencesPunitionService.modifiePunition(punition, punitionParams)
}
else {
- verifieDroitAccesObjetDomaine(punitionParams.eleve)
-
- punition = absencesPunitionService.creePunition(punitionParams)
+ boolean isAutoriseSaisieRetenue = isAutoriseSaisieRetenue(getSecuriteSession())
+ punition = absencesPunitionService.creePunition(punitionParams, isAutoriseSaisieRetenue)
if (punitionId == null) {
punitionId = punition.id
}
def isEleveAbsent = {
- verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD)
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseSaisiePunition(getSecuriteSession())
+ )
Map absenceInfo = (Map) JSON.parse(params.absenceInfo)
Personne eleve = getPersonneForIdAutorite(absenceInfo.autoriteEleveId)
Date dateDebut = Date.parse(ConstDate.DATE_JJMMAAA, absenceInfo.dateDebut)
}
def changeStatutPunition = {
- verifieDroitFonctionnalite(AbsencesFonctionnalite.ABS_SAISIE_INC_PUN_SAN_CUD)
-
Map resultat
try {
- absencesPunitionService.changeStatutPunition(Long.parseLong(params.punitionId), Boolean.parseBoolean(params.statut))
+ Punition punition = Punition.findById(Long.parseLong(params.punitionId))
+
+ absencesDroitService.verifieDroitFonctionnalitePunitionCUD(
+ getSecuriteSession(),
+ isAutoriseUDPunition(getSecuriteSession(), punition)
+ )
+
+ absencesPunitionService.changeStatutPunition(punition, Boolean.parseBoolean(params.statut))
resultat = [
success: true,
message: message(code: 'absences.saisie.punitions.modification.succes')
String libelleNonEffectue = message(code: 'absences.data.nonEffectuee')
punitionsInfo.each { def punitionInfo ->
+
+ Boolean isUtilisateurCourantAuteur = null
+ if (punitionInfo[0].auteur){
+ isUtilisateurCourantAuteur = (getSecuriteSession().defaultAutorite.id == punitionInfo[0].auteur.id)
+ }
+
punitionsConsultationInfo.add(
new PunitionConsultationInfo(
id: punitionInfo[0].id,
censeur: punitionInfo[3],
statut: punitionInfo[0].effectue ?
(activeCUD ? true : libelleEffectue) : (activeCUD ? false : libelleNonEffectue),
- absenceLiee: punitionInfo[0].absenceLiee
+ absenceLiee: punitionInfo[0].absenceLiee,
+ isUtilisateurCourantAuteur: isUtilisateurCourantAuteur
)
)
}
finAbsence: punitionParams.finAbsence,
etablissement: punitionParams.etablissement,
operateurSaisie: punitionParams.operateurSaisie,
- preferences: punitionParams.preferences,
+ preferences: punitionParams.preferences
))
}