Commit ab13ab1a authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

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

parent d6eeb88e
Loading
Loading
Loading
Loading
+10 −1
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;
+12 −4
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;
    }