abstract class DefaultLoader extends S3_Loader {
public static final String SEQUENCE_SECURITE_AUTORITE = 'securite.autorite_id_seq'
- public static final String SEQUENCE_SECURITE_ITEM = 'securite.item_id_seq'
public static final String SEQUENCE_ENT_FONCTION = 'ent.fonction_id_seq'
public static final String SEQUENCE_ENT_PROPRIETES_SCOLARITE = 'ent.propriete_scolarite_id_seq'
public static final String SEXE_MASCULIN = "M"
public static final String SEXE_FEMININ = "F"
- public static final String PROF_PRINCIPAL = "Professeur principal"
public static final String DELEGUE = "Délégué"
- public static final String NOM_GROUPE_SEPARATEUR = " > "
public static final String REGIME_INTERNE_LIBELLE = 'INTERNE'
public static final String REGIME_EXTERNE_LIBELLE = 'EXTERNE'
*/
def desactiveAutoriteForId(Sql sql, Long autoriteId) {
sql.execute("""
- update securite.autorite set est_active = FALSE, etat = ${getEtatDesactive()}, import_id = ${importId}, date_desactivation = ${SqlUtils.getCurrentTimestamp()}
+ update securite.autorite set est_active = FALSE, etat = ${getEtatDesactive()}, import_id = ${importId}
where id = ${autoriteId}
""")
}
def activeAutoriteForId(Sql sql, Long autoriteId) {
sql.execute("""
- update securite.autorite set est_active = TRUE, etat = 'ACTIF', import_id = ${importId}, date_desactivation = NULL
+ update securite.autorite set est_active = TRUE, etat = 'ACTIF', import_id = ${importId}
where id = ${autoriteId}
""")
}
set
est_active = FALSE,
etat = '${getEtatDesactive()}',
- date_desactivation = ${SqlUtils.getCurrentTimestamp()},
import_id = ${importId}
from
aaf.import import
securite.autorite
set
import_id = null,
- est_active = null,
- date_desactivation = null
+ est_active = null
where
id = ${elv.autorite_idInterne}
""")
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = demande.id
FROM securite.autorite AS a
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = demande.id
FROM securite.autorite AS a
SET
est_active = false,
annuaire_import_id = demande.id,
- etat = demande.etat_desactivation,
- date_desactivation = current_date
+ etat = demande.etat_desactivation
FROM annuaire_interface.eleve AS source
INNER JOIN annuaire_interface.demande_import AS demande ON source.demande_import_id = demande.id
WHERE demande.statut = 'EN_COURS'
SET
est_active = false,
etat = (SELECT etat_desactivation FROM import),
- date_desactivation = now(),
annuaire_import_id = (SELECT id FROM import)
WHERE aut.est_active = true
AND EXISTS (
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = source.annuaire_import_id
FROM eleves_a_traiter AS source
SET
est_active = false,
annuaire_import_id = demande.id,
- etat = demande.etat_desactivation,
- date_desactivation = current_date
+ etat = demande.etat_desactivation
FROM annuaire_interface.pers_educ_nat AS source
INNER JOIN annuaire_interface.demande_import AS demande ON source.demande_import_id = demande.id
WHERE demande.statut = 'EN_COURS'
SET
est_active = false,
etat = (SELECT etat_desactivation FROM import),
- date_desactivation = now(),
annuaire_import_id = (SELECT id FROM import)
WHERE aut.est_active = true
AND EXISTS (
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = source.annuaire_import_id
FROM pers_educ_nat_mis_a_jour_ids AS source
SET
est_active = false,
annuaire_import_id = demande.id,
- etat = demande.etat_desactivation,
- date_desactivation = current_date
+ etat = demande.etat_desactivation
FROM annuaire_interface.hors_aaf AS source
INNER JOIN annuaire_interface.demande_import AS demande ON source.demande_import_id = demande.id
WHERE demande.statut = 'EN_COURS'
SET
est_active = false,
etat = (SELECT etat_desactivation FROM import),
- date_desactivation = now(),
annuaire_import_id = (SELECT id FROM import)
WHERE aut.est_active = true
AND EXISTS (
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = source.annuaire_import_id
FROM hors_aaf_mis_a_jour_ids AS source
SET
est_active = false,
annuaire_import_id = demande.id,
- etat = demande.etat_desactivation,
- date_desactivation = current_date
+ etat = demande.etat_desactivation
FROM annuaire_interface.responsable_eleve AS source
INNER JOIN annuaire_interface.demande_import AS demande ON source.demande_import_id = demande.id
WHERE demande.statut = 'EN_COURS'
SET
est_active = false,
etat = (SELECT etat_desactivation FROM import),
- date_desactivation = now(),
annuaire_import_id = (SELECT id FROM import)
WHERE aut.est_active = true
AND EXISTS (
UPDATE securite.autorite AS cible
SET
est_active = true,
- date_desactivation = null,
etat = 'ACTIF',
annuaire_import_id = source.annuaire_import_id
FROM responsable_mis_a_jour_ids AS source
id_externe = atemp.id_externe,
est_active = atemp.est_active,
import_id = atemp.import_id,
- date_desactivation = atemp.date_desactivation,
nom_entite_cible = atemp.nom_entite_cible,
enregistrement_cible_id = atemp.enregistrement_cible_id,
id_sts = atemp.id_sts,
chargePersonne.autorite.etat
)
+ // désactive le trigger qui met à jour automatiquement la date de désactivation des autorités
+ // sinon les tests ne pourront pas la mettre à jour comme ils veulent
+ desactiveTriggerAutorite()
modifieDateDesactivationAutorite(chargePersonne.autorite.id_externe)
+ reactiveTriggerAutorite()
+
creeEleve(EtatDesactivation.ACCES_RESTREINT)
// execute le script d'import
chargePersonne.autorite.etat
)
+ // désactive le trigger qui met à jour automatiquement la date de désactivation des autorités
+ // sinon les tests ne pourront pas la mettre à jour comme ils veulent
+ desactiveTriggerAutorite()
modifieDateDesactivationAutorite(chargePersonne.autorite.id_externe)
+ reactiveTriggerAutorite()
+
creeHorsAaf(EtatDesactivation.ACCES_RESTREINT)
// execute le script d'import
chargePersonne.autorite.etat
)
+ // désactive le trigger qui met à jour automatiquement la date de désactivation des autorités
+ // sinon les tests ne pourront pas la mettre à jour comme ils veulent
+ desactiveTriggerAutorite()
modifieDateDesactivationAutorite(chargePersonne.autorite.id_externe)
+ reactiveTriggerAutorite()
+
creeProf(EtatDesactivation.ACCES_RESTREINT)
// execute le script d'import
EtatDesactivation.ACCES_RESTREINT
)
+ // désactive le trigger qui met à jour automatiquement la date de désactivation des autorités
+ // sinon les tests ne pourront pas la mettre à jour comme ils veulent
+ desactiveTriggerAutorite()
modifieDateDesactivationAutorite(chargePersonne.autorite.id_externe)
+ reactiveTriggerAutorite()
+
creeParent(EtatDesactivation.ACCES_RESTREINT)
// execute le script d'import
chargePersonneModifiee.personne.applicationContext = applicationContext
}
+ void desactiveTriggerAutorite(){
+ String sqlString = """ALTER TABLE securite.autorite DISABLE TRIGGER USER;"""
+ sql.execute(sqlString)
+ }
+
+ void reactiveTriggerAutorite(){
+ String sqlString = """ALTER TABLE securite.autorite ENABLE TRIGGER USER;"""
+ sql.execute(sqlString)
+ }
+
/**
* Recule la date de désactivation de l'autorite de 61 jours pour tester le
* passage de l'état de "ACCES_RESTREINT" à "INACTIF"
private void reactiveDefaultAutorite(Autorite defaultAutorite) {
defaultAutorite.estActive = true
defaultAutorite.etat = CompteUtilisateurEtat.ACTIF
- defaultAutorite.dateDesactivation = null
defaultAutorite.save(flush: true, failOnError: true)
}
Date dateSuppression) {
defaultAutorite.estActive = false
defaultAutorite.etat = CompteUtilisateurEtat.ACCES_RESTREINT
- defaultAutorite.dateDesactivation = dateSuppression
defaultAutorite.save(flush: true, failOnError: true)
}
<include file="changelogs/securite/2014-02-17-0034355.xml"/>
<include file="changelogs/securite/2014-02-25-0034704.xml"/>
<include file="changelogs/docs/2014-04-02-0033848.xml"/>
+ <include file="changelogs/securite/2014-04-09-0035282.xml"/>
</databaseChangeLog>
\ No newline at end of file
<include file="changelogs/scolarite/2014-03-12-0028846.xml"/>
<include file="changelogs/scolarite/2014-03-18-0035293.xml"/>
<include file="changelogs/scolarite/2014-04-03-0030529.xml"/>
+ <include file="changelogs/securite/2014-04-09-0035282.xml"/>
</databaseChangeLog>
--- /dev/null
+<!--
+ ~ Copyright © FYLAB and the Conseil Régional d'Île-de-France, 2009
+ ~ This file is part of L'Interface Libre et Interactive de l'Enseignement (Lilie).
+ ~
+ ~ Lilie is free software. You can redistribute it and/or modify since
+ ~ you respect the terms of either (at least one of the both license) :
+ ~ - under the terms of the GNU Affero General Public License as
+ ~ published by the Free Software Foundation, either version 3 of the
+ ~ License, or (at your option) any later version.
+ ~ - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ ~ License, or any later version
+ ~
+ ~ There are special exceptions to the terms and conditions of the
+ ~ licenses as they are applied to this software. View the full text of
+ ~ the exception in file LICENSE.txt in the directory of this software
+ ~ distribution.
+ ~
+ ~ Lilie is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ~ Licenses for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ and the CeCILL-C along with Lilie. If not, see :
+ ~ <http://www.gnu.org/licenses/> and
+ ~ <http://www.cecill.info/licences.fr.html>.
+ -->
+
+<databaseChangeLog
+ xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
+
+ <changeSet id="1" author="agia">
+ <comment>
+ Trigger de mise à jour automatique des date_desactivation dans la table
+ securite.autorite
+ </comment>
+
+ <createProcedure>
+ <![CDATA[
+ CREATE OR REPLACE FUNCTION set_date_desactivation() RETURNS TRIGGER AS $set_date_desactivation$
+ BEGIN
+ IF (NEW.est_active = OLD.est_active)
+ THEN
+ NEW.date_desactivation = OLD.date_desactivation;
+ RETURN NEW;
+ END IF;
+
+ IF (NEW.est_active = true)
+ THEN NEW.date_desactivation = null;
+ ELSE NEW.date_desactivation = now();
+ END IF;
+
+ RETURN NEW;
+ END;
+ $set_date_desactivation$ LANGUAGE plpgsql;
+ ]]>
+ </createProcedure>
+
+ <sql>
+ CREATE TRIGGER set_date_desactivation
+ BEFORE UPDATE ON securite.autorite
+ FOR EACH ROW EXECUTE PROCEDURE set_date_desactivation();
+ </sql>
+
+ </changeSet>
+
+</databaseChangeLog>