diff --git a/data/Sql/privileges.sql b/data/Sql/privileges.sql index 392faa3b9419fe7301cb47a4337990d26e0a2069..dabe29acf509ac3a9d48c90f6049519ca5b530ee 100644 --- a/data/Sql/privileges.sql +++ b/data/Sql/privileges.sql @@ -39,10 +39,18 @@ order by -- EXPORT -categorie_privilege -privilege - -role - role_privilege -statut_privilege \ No newline at end of file +statut_privilege + +; + +SELECT 'INSERT INTO PERIMETRE ( + ID, + CODE, + LIBELLE + ) VALUES ( + PERIMETRE_ID_SEQ.NEXTVAL, + ''' || code || ''', + q''$' || libelle || '$'' + );' +FROM perimetre; \ No newline at end of file diff --git a/data/Sql/v_1.5.sql b/data/Sql/v_1.5.sql index 52847016fac3c1665277e2e115136e88e5037175..44a44eb4a3e27c06126db2dbb58bee608628b5b1 100644 --- a/data/Sql/v_1.5.sql +++ b/data/Sql/v_1.5.sql @@ -11010,5 +11010,86 @@ update effectifs set annee_id = to_number( substr( source_code, 1, 4) ), source_ / BEGIN DBMS_SCHEDULER.enable(name=>'"OSE"."OSE_SRC_SYNC"'); END; / + +DROP SEQUENCE RESSOURCE_ID_SEQ; +DROP SEQUENCE ROLE_UTILISATEUR_ID_SEQ; +DROP SEQUENCE ROLE_UTILISATEUR_LINKER_ID_SEQ; +DROP SEQUENCE TYPE_ROLE_ID_SEQ; +DROP SEQUENCE TYPE_ROLE_PRIVILEGE_ID_SEQ; +DROP SEQUENCE TYPE_ROLE_STRUCTURE_ID_SEQ; +DROP SEQUENCE UNICAEN_EFFECTIFS_POUR__ID_SEQ; +DROP SEQUENCE WF_ETAPE_TO_ETAPE_ID_SEQ; + +DROP INDEX ROLE_UTILISATEUR_ID_UN; +DROP INDEX MV_DISCIPLINE_PK; +DROP INDEX MV_INTERVENANT_EXTERIEUR_PK; +DROP INDEX TYPE_ROLE_STRUCTURE_PK; +DROP INDEX MV_VOLUME_HORAIRE_ENS_PK; +DROP INDEX MV_INTERVENANT_PERMANENT_PK; +DROP INDEX WF_ETAPE_TO_ETAPE_PK; +DROP INDEX MV_HARP_IND_DER_STRUCT_PK; +DROP INDEX MV_HARP_INDIVIDU_STATUT_PK; +DROP INDEX MV_ELEMENT_DISCIPLINE_PK; +DROP INDEX TYPE_ROLE_CODE_UN; +DROP INDEX VHE_SOURCE_UN; +DROP INDEX DROIT_PK; +DROP INDEX FORMULE_RESULTAT_MAJ_PK; +DROP INDEX ROLE_UTILISATEUR_PK; +DROP INDEX MV_ROLE_PK; +DROP INDEX MV_ELEMENT_PORTEUR_PORTE_PK; +DROP INDEX TYPE_ROLE_PK; +DROP INDEX RESSOURCE__UN; +DROP INDEX ROLE_UTILISATEUR_LINKER_PK; +DROP INDEX RESSOURCE_PK; +DROP INDEX MV_HARP_INDIVIDU_BANQUE_PK; + +DROP table ressource; +DROP table ROLE_UTILISATEUR; +DROP table ROLE_UTILISATEUR_LINKER; +DROP table TYPE_ROLE; +DROP table TYPE_ROLE_PRIVILEGE; +DROP table TYPE_ROLE_STRUCTURE; +DROP table WF_ETAPE_TO_ETAPE; + +DROP VIEW SRC_DISCIPLINE; +DROP VIEW SRC_ELEMENT_DISCIPLINE; +DROP VIEW SRC_ELEMENT_PORTEUR_PORTE; +DROP VIEW SRC_ROLE; +DROP VIEW SRC_VOLUME_HORAIRE_ENS; +DROP VIEW V_BERTRAND; +DROP VIEW V_DIFF_DISCIPLINE; +DROP VIEW V_DIFF_ELEMENT_DISCIPLINE; +DROP VIEW V_DIFF_ROLE; +DROP VIEW V_DIFF_VOLUME_HORAIRE_ENS; +DROP VIEW V_TMP_WF; + +DROP MATERIALIZED VIEW MV_DISCIPLINE; +DROP MATERIALIZED VIEW MV_ELEMENT_DISCIPLINE; +DROP MATERIALIZED VIEW MV_ELEMENT_PORTEUR_PORTE; +DROP MATERIALIZED VIEW MV_ELEMENT_TAUX_REGIMES_X; +DROP MATERIALIZED VIEW MV_HARP_IND_DER_STRUCT; +DROP MATERIALIZED VIEW MV_HARP_INDIVIDU_BANQUE; +DROP MATERIALIZED VIEW MV_HARP_INDIVIDU_STATUT; +DROP MATERIALIZED VIEW MV_INTERVENANT_EXTERIEUR; +DROP MATERIALIZED VIEW MV_INTERVENANT_PERMANENT; +DROP MATERIALIZED VIEW MV_ROLE; +DROP MATERIALIZED VIEW MV_VOLUME_HORAIRE_ENS; + +DROP TRIGGER F_RESULTAT_R; +DROP TRIGGER F_RESULTAT_SERVICE_R; +DROP TRIGGER F_RESULTAT_SERVICE_REF_R; +DROP TRIGGER F_RESULTAT_VH_R; +DROP TRIGGER F_RESULTAT_VH_REF_R; +DROP TRIGGER WF_TRG_INTERV_DOSSIER; +DROP TRIGGER WF_TRG_INTERV_DOSSIER_S; + + +DROP procedure PURGER_INTERVENANT; + + + + + + BEGIN OSE_FORMULE.CALCULER_TOUT; END; / \ No newline at end of file diff --git a/module/Application/src/Application/Provider/Identity/IdentityProvider.php b/module/Application/src/Application/Provider/Identity/IdentityProvider.php index ce25efedd84190a157ba42090ecbae8501a59084..fe48fa15986218c3bb0b25c2d186592c394c412a 100644 --- a/module/Application/src/Application/Provider/Identity/IdentityProvider.php +++ b/module/Application/src/Application/Provider/Identity/IdentityProvider.php @@ -74,9 +74,12 @@ class IdentityProvider implements ServiceLocatorAwareInterface, ChainableProvide /** * Rôle correspondant au type d'intervenant auquel appartient l'utilisateur */ - $intervenant = $utilisateur->getIntervenant(); - if ($intervenant){ - $this->roles[] = Acl\IntervenantRole::ROLE_ID; + if ($intervenant = $utilisateur->getIntervenant()){ + if ($intervenant->estPermanent()){ + $this->roles[] = Acl\IntervenantPermanentRole::ROLE_ID; + }else{ + $this->roles[] = Acl\IntervenantExterieurRole::ROLE_ID; + } } } return $this->roles; diff --git a/module/Application/src/Application/Provider/Role/RoleProvider.php b/module/Application/src/Application/Provider/Role/RoleProvider.php index f39cac2950ff24a8e04d2b77ea260ec48faf922b..632dfed9e39ccb8d16898b902d59c2cbc3bd8163 100644 --- a/module/Application/src/Application/Provider/Role/RoleProvider.php +++ b/module/Application/src/Application/Provider/Role/RoleProvider.php @@ -81,10 +81,14 @@ class RoleProvider implements ProviderInterface, EntityManagerAwareInterface $utilisateur = $serviceAuthUserContext->getDbUser(); /* Cas spécifique du rôle intervenant */ - if ($utilisateur && $utilisateur->getIntervenant()){ - $role = new IntervenantRole; + if ($utilisateur && $intervenant = $utilisateur->getIntervenant()){ + /* @var $intervenant \Application\Entity\Db\Intervenant */ + if ($intervenant->estPermanent()){ + $role = $roles[\Application\Acl\IntervenantPermanentRole::ROLE_ID]; + }else{ + $role = $roles[\Application\Acl\IntervenantExterieurRole::ROLE_ID]; + } $role->setIntervenant( $utilisateur->getIntervenant() ); - $roles[$role->getRoleId()] = $role; } /* Rôles du personnel */