Commit 3722050f authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Nouveau privilège pour permettre de saisir sur référentiel sur n'importe quelle composante

parent 60a1e3f4
......@@ -140,12 +140,13 @@ return [
'referentiel' => [
'libelle' => 'Référentiel',
'privileges' => [
'visualisation' => 'Visualisation',
'edition' => 'Édition',
'validation' => 'Validation',
'admin-edition' => 'Administration - Édition',
'devalidation' => 'Dévalidation',
'admin-visualisation' => 'Administration - Visualisation',
'visualisation' => 'Visualisation',
'edition' => 'Édition',
'validation' => 'Validation',
'admin-edition' => 'Administration - Édition',
'devalidation' => 'Dévalidation',
'admin-visualisation' => 'Administration - Visualisation',
'saisie-toutes-composantes' => 'Saisie sans contrainte de composante',
],
],
......
......@@ -34,7 +34,6 @@ class ServiceAssertion extends AbstractAssertion
use TypeVolumeHoraireServiceAwareTrait;
/* ---- Routage général ---- */
public function __invoke(array $page) // gestion des visibilités de menus
{
......@@ -284,23 +283,23 @@ class ServiceAssertion extends AbstractAssertion
protected function assertServiceReferentielEdition(Role $role, ServiceReferentiel $serviceReferentiel)
{
$structure = $role->getStructure();
$asserts = [];
if ($structure) {
$structureAffectation = $serviceReferentiel->getIntervenant() ? $serviceReferentiel->getIntervenant()->getStructure() : null;
$structureEnseignement = $serviceReferentiel->getStructure();
if ($structureAffectation && $structureEnseignement) {
// cas d'un intervenant d'une autre structure prenant un enseignement dans une autre structure
$asserts[] = $structure == $structureAffectation || $structure == $structureEnseignement; // le service doit avoir un lien avec la structure
} elseif ($structureAffectation && !$structureEnseignement) {
// cas d'un intervenant prenant des enseignements à l'extérieur
$asserts[] = $structure == $structureAffectation;
} elseif (!$structureAffectation && $structureEnseignement) {
// cas d'un intervenant extérieur prenant des enseignements de la composante
$asserts[] = $structure == $structureEnseignement;
if (!$role->hasPrivilege(Privileges::REFERENTIEL_SAISIE_TOUTES_COMPOSANTES)) {
// Si on n'a pas le privilège pour pouvoir du référentiel dans toutes les composantes sans restriction
if ($structure = $role->getStructure()) {
$structureAffectation = $serviceReferentiel->getIntervenant() ? $serviceReferentiel->getIntervenant()->getStructure() : null;
$structureEnseignement = $serviceReferentiel->getStructure();
if ($structureAffectation && $structureEnseignement) {
// cas d'un intervenant d'une autre structure prenant un enseignement dans une autre structure
$asserts[] = $structure == $structureAffectation || $structure == $structureEnseignement; // le service doit avoir un lien avec la structure
} elseif ($structureAffectation && !$structureEnseignement) {
// cas d'un intervenant prenant des enseignements à l'extérieur
$asserts[] = $structure == $structureAffectation;
} elseif (!$structureAffectation && $structureEnseignement) {
// cas d'un intervenant extérieur prenant des enseignements de la composante
$asserts[] = $structure == $structureEnseignement;
}
}
}
......
......@@ -71,35 +71,35 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const DISCIPLINE_VISUALISATION = 'discipline-visualisation';
const DOMAINES_FONCTIONNELS_ADMINISTRATION_EDITION = 'domaines-fonctionnels-administration-edition';
const DOMAINES_FONCTIONNELS_ADMINISTRATION_VISUALISATION = 'domaines-fonctionnels-administration-visualisation';
const DOSSIER_DEVALIDATION = 'dossier-devalidation';
const DOSSIER_DIFFERENCES = 'dossier-differences';
const DOSSIER_EDITION = 'dossier-edition';
const DOSSIER_PURGER_DIFFERENCES = 'dossier-purger-differences';
const DOSSIER_SUPPRESSION = 'dossier-suppression';
const DOSSIER_VALIDATION = 'dossier-validation';
const DOSSIER_VISUALISATION = 'dossier-visualisation';
const DOSSIER_IDENTITE_VISUALISATION = 'dossier-identite-visualisation';
const DOSSIER_IDENTITE_EDITION = 'dossier-identite-edition';
const DOSSIER_ADRESSE_VISUALISATION = 'dossier-adresse-visualisation';
const DOSSIER_ADRESSE_EDITION = 'dossier-adresse-edition';
const DOSSIER_CONTACT_VISUALISATION = 'dossier-contact-visualisation';
const DOSSIER_CONTACT_EDITION = 'dossier-contact-edition';
const DOSSIER_INSEE_VISUALISATION = 'dossier-insee-visualisation';
const DOSSIER_INSEE_EDITION = 'dossier-insee-edition';
const DOSSIER_BANQUE_VISUALISATION = 'dossier-banque-visualisation';
const DOSSIER_ADRESSE_VISUALISATION = 'dossier-adresse-visualisation';
const DOSSIER_BANQUE_EDITION = 'dossier-banque-edition';
const DOSSIER_EMPLOYEUR_VISUALISATION = 'dossier-employeur-visualisation';
const DOSSIER_EMPLOYEUR_EDITION = 'dossier-employeur-edition';
const DOSSIER_CHAMP_AUTRE_1_VISUALISATION = 'dossier-champ-autre-1-visualisation';
const DOSSIER_BANQUE_VISUALISATION = 'dossier-banque-visualisation';
const DOSSIER_CHAMP_AUTRE_1_EDITION = 'dossier-champ-autre-1-edition';
const DOSSIER_CHAMP_AUTRE_2_VISUALISATION = 'dossier-champ-autre-2-visualisation';
const DOSSIER_CHAMP_AUTRE_1_VISUALISATION = 'dossier-champ-autre-1-visualisation';
const DOSSIER_CHAMP_AUTRE_2_EDITION = 'dossier-champ-autre-2-edition';
const DOSSIER_CHAMP_AUTRE_3_VISUALISATION = 'dossier-champ-autre-3-visualisation';
const DOSSIER_CHAMP_AUTRE_2_VISUALISATION = 'dossier-champ-autre-2-visualisation';
const DOSSIER_CHAMP_AUTRE_3_EDITION = 'dossier-champ-autre-3-edition';
const DOSSIER_CHAMP_AUTRE_4_VISUALISATION = 'dossier-champ-autre-4-visualisation';
const DOSSIER_CHAMP_AUTRE_3_VISUALISATION = 'dossier-champ-autre-3-visualisation';
const DOSSIER_CHAMP_AUTRE_4_EDITION = 'dossier-champ-autre-4-edition';
const DOSSIER_CHAMP_AUTRE_5_VISUALISATION = 'dossier-champ-autre-5-visualisation';
const DOSSIER_CHAMP_AUTRE_4_VISUALISATION = 'dossier-champ-autre-4-visualisation';
const DOSSIER_CHAMP_AUTRE_5_EDITION = 'dossier-champ-autre-5-edition';
const DOSSIER_CHAMP_AUTRE_5_VISUALISATION = 'dossier-champ-autre-5-visualisation';
const DOSSIER_CONTACT_EDITION = 'dossier-contact-edition';
const DOSSIER_CONTACT_VISUALISATION = 'dossier-contact-visualisation';
const DOSSIER_DEVALIDATION = 'dossier-devalidation';
const DOSSIER_DIFFERENCES = 'dossier-differences';
const DOSSIER_EDITION = 'dossier-edition';
const DOSSIER_EMPLOYEUR_EDITION = 'dossier-employeur-edition';
const DOSSIER_EMPLOYEUR_VISUALISATION = 'dossier-employeur-visualisation';
const DOSSIER_IDENTITE_EDITION = 'dossier-identite-edition';
const DOSSIER_IDENTITE_VISUALISATION = 'dossier-identite-visualisation';
const DOSSIER_INSEE_EDITION = 'dossier-insee-edition';
const DOSSIER_INSEE_VISUALISATION = 'dossier-insee-visualisation';
const DOSSIER_PURGER_DIFFERENCES = 'dossier-purger-differences';
const DOSSIER_SUPPRESSION = 'dossier-suppression';
const DOSSIER_VALIDATION = 'dossier-validation';
const DOSSIER_VISUALISATION = 'dossier-visualisation';
const DROIT_AFFECTATION_EDITION = 'droit-affectation-edition';
const DROIT_AFFECTATION_VISUALISATION = 'droit-affectation-visualisation';
const ENSEIGNEMENT_DEVALIDATION = 'enseignement-devalidation';
......@@ -127,16 +127,16 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const INDICATEUR_ABONNEMENTS_VISUALISATION = 'indicateur-abonnements-visualisation';
const INDICATEUR_ENVOI_MAIL_INTERVENANTS = 'indicateur-envoi-mail-intervenants';
const INDICATEUR_VISUALISATION = 'indicateur-visualisation';
const INTERVENANT_CREATION = 'intervenant-creation';
const INTERVENANT_AJOUT_STATUT = 'intervenant-ajout-statut';
const INTERVENANT_AUTRES_EDITION = 'intervenant-autres-edition';
const INTERVENANT_AUTRES_VISUALISATION = 'intervenant-autres-visualisation';
const INTERVENANT_CALCUL_HETD = 'intervenant-calcul-hetd';
const INTERVENANT_CREATION = 'intervenant-creation';
const INTERVENANT_EDITION = 'intervenant-edition';
const INTERVENANT_AJOUT_STATUT = 'intervenant-ajout-statut';
const INTERVENANT_FICHE = 'intervenant-fiche';
const INTERVENANT_RECHERCHE = 'intervenant-recherche';
const INTERVENANT_STATUT_EDITION = 'intervenant-statut-edition';
const INTERVENANT_STATUT_VISUALISATION = 'intervenant-statut-visualisation';
const INTERVENANT_AUTRES_VISUALISATION = 'intervenant-autres-visualisation';
const INTERVENANT_AUTRES_EDITION = 'intervenant-autres-edition';
const INTERVENANT_SUPPRESSION = 'intervenant-suppression';
const MISE_EN_PAIEMENT_DEMANDE = 'mise-en-paiement-demande';
const MISE_EN_PAIEMENT_EDITION = 'mise-en-paiement-edition';
......@@ -166,13 +166,13 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const ODF_ELEMENT_VISUALISATION = 'odf-element-visualisation';
const ODF_ETAPE_EDITION = 'odf-etape-edition';
const ODF_ETAPE_VISUALISATION = 'odf-etape-visualisation';
const ODF_RECONDUCTION_OFFRE = 'odf-reconduction-offre';
const ODF_RECONDUCTION_CENTRE_COUT = 'odf-reconduction-centre-cout';
const ODF_RECONDUCTION_MODULATEUR = 'odf-reconduction-modulateur';
const ODF_EXPORT_CSV = 'odf-export-csv';
const ODF_GRANDS_TYPES_DIPLOME_EDITION = 'odf-grands-types-diplome-edition';
const ODF_GRANDS_TYPES_DIPLOME_VISUALISATION = 'odf-grands-types-diplome-visualisation';
const ODF_MODULATEURS_EDITION = 'odf-modulateurs-edition';
const ODF_RECONDUCTION_CENTRE_COUT = 'odf-reconduction-centre-cout';
const ODF_RECONDUCTION_MODULATEUR = 'odf-reconduction-modulateur';
const ODF_RECONDUCTION_OFFRE = 'odf-reconduction-offre';
const ODF_TAUX_MIXITE_EDITION = 'odf-taux-mixite-edition';
const ODF_TYPES_DIPLOME_EDITION = 'odf-types-diplome-edition';
const ODF_TYPES_DIPLOME_VISUALISATION = 'odf-types-diplome-visualisation';
......@@ -183,6 +183,7 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const PARAMETRES_CAMPAGNES_SAISIE_VISUALISATION = 'parametres-campagnes-saisie-visualisation';
const PARAMETRES_GENERAL_EDITION = 'parametres-general-edition';
const PARAMETRES_GENERAL_VISUALISATION = 'parametres-general-visualisation';
const PIECE_JUSTIFICATIVE_ARCHIVAGE = 'piece-justificative-archivage';
const PIECE_JUSTIFICATIVE_DEVALIDATION = 'piece-justificative-devalidation';
const PIECE_JUSTIFICATIVE_EDITION = 'piece-justificative-edition';
const PIECE_JUSTIFICATIVE_GESTION_EDITION = 'piece-justificative-gestion-edition';
......@@ -190,19 +191,19 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const PIECE_JUSTIFICATIVE_TELECHARGEMENT = 'piece-justificative-telechargement';
const PIECE_JUSTIFICATIVE_VALIDATION = 'piece-justificative-validation';
const PIECE_JUSTIFICATIVE_VISUALISATION = 'piece-justificative-visualisation';
const PIECE_JUSTIFICATIVE_ARCHIVAGE = 'piece-justificative-archivage';
const PILOTAGE_ECARTS_ETATS = 'pilotage-ecarts-etats';
const PILOTAGE_VISUALISATION = 'pilotage-visualisation';
const PLAFONDS_GESTION_EDITION = 'plafonds-gestion-edition';
const PLAFONDS_GESTION_VISUALISATION = 'plafonds-gestion-visualisation';
const REFERENTIEL_ADMIN_EDITION = 'referentiel-admin-edition';
const REFERENTIEL_ADMIN_VISUALISATION = 'referentiel-admin-visualisation';
const REFERENTIEL_COMMUN_VOIRIE_EDITION = 'referentiel-commun-voirie-edition';
const REFERENTIEL_COMMUN_VOIRIE_VISUALISATION = 'referentiel-commun-voirie-visualisation';
const REFERENTIEL_COMMUN_EMPLOYEUR_EDITION = 'referentiel-commun-employeur-edition';
const REFERENTIEL_COMMUN_EMPLOYEUR_VISUALISATION = 'referentiel-commun-employeur-visualisation';
const REFERENTIEL_COMMUN_VOIRIE_EDITION = 'referentiel-commun-voirie-edition';
const REFERENTIEL_COMMUN_VOIRIE_VISUALISATION = 'referentiel-commun-voirie-visualisation';
const REFERENTIEL_DEVALIDATION = 'referentiel-devalidation';
const REFERENTIEL_EDITION = 'referentiel-edition';
const REFERENTIEL_SAISIE_TOUTES_COMPOSANTES = 'referentiel-saisie-toutes-composantes';
const REFERENTIEL_VALIDATION = 'referentiel-validation';
const REFERENTIEL_VISUALISATION = 'referentiel-visualisation';
const STRUCTURES_ADMINISTRATION_EDITION = 'structures-administration-edition';
......@@ -216,6 +217,5 @@ class Privileges extends \UnicaenAuth\Provider\Privilege\Privileges
const UNICAEN_TBL_UPDATE_ACTUPROC = 'unicaen-tbl-update-actuproc';
const WORKFLOW_DEPENDANCES_EDITION = 'workflow-dependances-edition';
const WORKFLOW_DEPENDANCES_VISUALISATION = 'workflow-dependances-visualisation';
const EMPLOYEUR_GESTION = 'employeur-gestion';
}
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment