Commit e17b0ace authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier Committed by David Surville
Browse files

Correction de la récupération du lastRoleId à l'authentification

parent ccb95308
Loading
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -277,10 +277,19 @@ class UserContext extends AbstractService implements EventManagerAwareInterface
        // on sélectionne le 1er rôle sélectionnable.
        $selectedRoleId = $this->getSessionContainer()->selectedIdentityRole;
        $selectableRoles = $this->getSelectableIdentityRoles();
        
        if (null === $selectedRoleId || ! isset($selectableRoles[$selectedRoleId])) {
            $user = $this->getDbUser();
            $lastRole = ($user) ? $user->getLastRole() : null;
            $lastRoleId = ($lastRole) ? $lastRole->getRoleId() : null;
            if($lastRoleId !== null &&  isset($selectableRoles[$lastRoleId])) {
                $this->setSelectedIdentityRole($lastRoleId); // écriture en session
            }
            else {
                $firstSelectableRoleId = reset($selectableRoles);
                $this->setSelectedIdentityRole($firstSelectableRoleId); // écriture en session
            }
        }

        // Rôle sélectionné en session.
        $roleId = $this->getSessionContainer()->selectedIdentityRole; // lecture en session