Commit 022cecdf authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Permettre aux intervenants multi statuts de'agir sur leur seconde fiche


(cherry picked from commit ab13ab1a)
parent f612f55a
Loading
Loading
Loading
Loading
+10 −1
Changes for module/Application/src/ORM/RouteEntitiesInjector.php: 10 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ class RouteEntitiesInjector
            switch ($name) {
                case 'intervenant':
                    /** @var IntervenantService $serviceIntervenant */
                    $serviceIntervenant = \Application::$container->get(IntervenantService::class);
                    $serviceIntervenant = $e->getApplication()->getServiceManager()->get(IntervenantService::class);

                    /* @var $role \Application\Acl\Role */
                    $role   = $serviceIntervenant->getServiceContext()->getSelectedIdentityRole();
@@ -43,6 +43,15 @@ class RouteEntitiesInjector
                        } else {
                            $role->setIntervenant($entity); // Si c'est la même personne, on lui donne sa fiche d'ID demandée
                        }

                        $contextIntervenant = $this->getServiceContext()->getIntervenant();
                        $roleIntervenant    = $role->getIntervenant();

                        if ($contextIntervenant && $contextIntervenant !== $roleIntervenant) {
                            if ($contextIntervenant->getCode() === $roleIntervenant->getCode()) {
                                $this->getServiceContext()->setIntervenant($roleIntervenant);
                            }
                        }
                    }
                    $e->setParam($name, $entity);
                break;
+8 −0
Changes for module/Application/src/Service/ContextService.php: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -79,6 +79,11 @@ class ContextService extends AbstractService
    {
        if (!$this->intervenantInit || $this->serviceUserContext->getNextSelectedIdentityRole()) {
            $this->intervenantInit = true;

            $sc = $this->getSessionContainer();
            if (!$this->intervenant && ($id = $sc->intervenantId)) {
                $this->intervenant = $this->getServiceIntervenant()->get($id);
            } else {
                $utilisateurCode = $this->getConnecteurLdap()->getUtilisateurCourantCode();
                if ($utilisateurCode) {
                    $this->intervenant = $this->getServiceIntervenant()->getByUtilisateurCode($utilisateurCode);
@@ -86,6 +91,7 @@ class ContextService extends AbstractService
                    return null;
                }
            }
        }

        return $this->intervenant;
    }
@@ -116,6 +122,8 @@ class ContextService extends AbstractService
    public function setIntervenant(?Intervenant $intervenant): self
    {
        $this->intervenant = $intervenant;
        $sc                = $this->getSessionContainer();
        $sc->intervenantId = $intervenant ? $intervenant->getId() : null;

        return $this;
    }