Commit 80c52eac authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

Correction bug de changement de statut par les intervenants au niveau des données perso

Passage à PHP 7.4 requis
parent 0a4e4ab2
......@@ -30,6 +30,8 @@ Objectif : Doubles statuts et refonte des données personnelles
## Notes de mise à jour
* PHP 7.4 minimum requis : attention à bien mettre à jour vos serveurs
* Cette version comporte de nombreux changements en particulier sur la gestion des intervenants.
La migration ne sera possible qu'à partir de la version 14.10.
Si vous êtes sur une version antérieure à la 14, merci de migrer en 14.10 **AVANT** de migrer vers la 15.
......@@ -331,7 +333,7 @@ ATTENTION également : Si vous migrez d'une édition zf2 vers cette nouvelle ver
## Notes de mise à jour
Les versions 7.3 ou 7.4 de PHP sont maintenant nécessaires.
Les versions 7.4 de PHP sont maintenant nécessaires.
# OSE 10-zf2 et 10-zf3
......
......@@ -4,7 +4,7 @@ OSE est une application web qui exploite une base de données Oracle.
Il faut donc installer :
* Une base de données Oracle
* Un serveur web Apache + PHP >= 7.3
* Un serveur web Apache + PHP >= 7.4
Le serveur web peut être installé manuellement ou bien déployé via une image Docker.
Le serveur web n'héberge aucune donnée, hormis des fichiers de configuration et de cache. Toutes les données d'explloitation sont donc
......@@ -81,7 +81,7 @@ Dépendances requises :
* git
* wget
* Apache 2 avec le module de réécriture d'URL (*rewrite*) activé
* PHP 7.3 ou 7.4 avec les modules suivants :
* PHP 7.4 minimum avec les modules suivants :
* cli
* curl
* intl
......
......@@ -8,10 +8,10 @@
}
],
"require" : {
"php" : ">=7.3 || >=7.4",
"php" : ">=7.4",
"mpdf/mpdf" : "8.0.4 as 7.1.7",
"unicaen/app" : "3.1.11",
"unicaen/auth" : "3.0.9",
"unicaen/auth" : "3.0.12",
"zendframework/zend-code": "3.3.2",
"unicaen/bjy-authorize" : "3.0.4",
"zendframework/zend-file": "2.8.3",
......
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "158aa16a67750cc19608fed4e895e8c7",
"content-hash": "59962a7c0b3549aed22c18d5800989b8",
"packages": [
{
"name": "beberlei/assert",
......@@ -2658,11 +2658,11 @@
},
{
"name": "unicaen/auth",
"version": "3.0.9",
"version": "3.0.12",
"source": {
"type": "git",
"url": "https://git.unicaen.fr/lib/unicaen/auth.git",
"reference": "cf8eb5940be1033c56af14c93f3b856362f5ccb0"
"reference": "9584d55864f3fcc3b863bfc8ce77f6c371bd736d"
},
"require": {
"jasig/phpcas": "^1.3",
......@@ -2684,7 +2684,7 @@
]
},
"description": "Module d'authentification pour les applications Unicaen",
"time": "2020-01-08T14:33:54+00:00"
"time": "2020-11-05T13:37:16+00:00"
},
{
"name": "unicaen/bjy-authorize",
......@@ -6859,6 +6859,7 @@
"keywords": [
"tokenizer"
],
"abandoned": true,
"time": "2019-09-17T06:23:10+00:00"
},
{
......@@ -7979,7 +7980,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7.3 || >=7.4"
"php": ">=7.4"
},
"platform-dev": [],
"plugin-api-version": "1.1.0"
......
......@@ -152,6 +152,7 @@ class IntervenantDossierController extends AbstractController
if (!$intervenant) {
throw new \LogicException('Intervenant non précisé ou inexistant');
}
$intervenantDossier = $this->getServiceDossier()->getByIntervenant($intervenant);
$statutIntervenant = $this->getServiceStatutIntervenant()->get($data['DossierStatut']['statut']);
if ($statutIntervenant) {
......@@ -161,6 +162,15 @@ class IntervenantDossierController extends AbstractController
$intervenant->setSyncStatut(false);
$this->getServiceIntervenant()->save($intervenant);
$this->updateTableauxBord($intervenant);
// Lorsqu'un intervenant modifie son dossier, le rôle à sélectionner à la prochine requête doit correspondre
// au statut choisi dans le dossier.
if ($role->getIntervenant()) {
$this->serviceUserContext->clearIdentityRoles();
\Application::$container->get(\Application\Provider\Identity\IdentityProvider::class)->clearIdentityRoles();
\Application::$container->get(\Application\Provider\Role\RoleProvider::class)->clearRoles();
$this->serviceUserContext->setSelectedIdentityRole($statutIntervenant->getRoleId());
}
}
}
......
......@@ -42,6 +42,13 @@ class IdentityProvider implements ChainableProvider, IdentityProviderInterface
public function clearIdentityRoles()
{
$this->identityRoles = null;
}
/**
* {@inheritDoc}
*/
......
......@@ -80,6 +80,13 @@ class RoleProvider implements ProviderInterface, EntityManagerAwareInterface
public function clearRoles()
{
$this->roles = null;
}
protected function getRolesPrivileges()
{
if (!$this->rolesPrivileges) {
......
Markdown is supported
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