Commit 16c490ba authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Merge branch 'release-2.1.6' into develop

parents 4eb030d5 9965cf79
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

2.1.6
-----
- [FIX] Usurpation d'un compte local en BDD
- [FIX] Plantage de la page Assistance en cas d'authentification locale BDD

2.1.5
-----
- Validation des corrections de thèses desormais réalisée par le président du jury (anc. directeurs de thèses).
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
        "guzzlehttp/guzzle":             "^6.3",
        "ramsey/uuid":                   "^3.3",
        "unicaen/app":                   "^3.1",
        "unicaen/auth":                  "^3.1",
        "unicaen/auth":                  "dev-release-3.1.3 as 3.1.2",
        "unicaen/bjy-authorize":         "^3.0",
        "unicaen/code":                  "^3.0",
        "unicaen/db-import":             "^3.1",
+15 −6
Original line number Diff line number Diff line
@@ -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": "9a32749766400559d0b7f87218c03e2b",
    "content-hash": "8ebb1c2a6600bbeedd0e4446fc7aa09a",
    "packages": [
        {
            "name": "beberlei/assert",
@@ -3395,11 +3395,11 @@
        },
        {
            "name": "unicaen/auth",
            "version": "3.1.2",
            "version": "dev-release-3.1.3",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/auth.git",
                "reference": "f20a38745c469ebe7283bf0bde194ee31728f201"
                "reference": "b08ab1659cf0b83fa5b3b3fa73abcc9fbb0bd157"
            },
            "require": {
                "jasig/phpcas": "^1.3",
@@ -3421,7 +3421,7 @@
                ]
            },
            "description": "Module d'authentification pour les applications Unicaen",
            "time": "2021-02-09T17:17:53+00:00"
            "time": "2021-02-18T16:16:26+00:00"
        },
        {
            "name": "unicaen/bjy-authorize",
@@ -7952,9 +7952,18 @@
            "time": "2019-06-11T19:33:38+00:00"
        }
    ],
    "aliases": [],
    "aliases": [
        {
            "alias": "3.1.2",
            "alias_normalized": "3.1.2.0",
            "version": "dev-release-3.1.3",
            "package": "unicaen/auth"
        }
    ],
    "minimum-stability": "stable",
    "stability-flags": [],
    "stability-flags": {
        "unicaen/auth": 20
    },
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": {
+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ use UnicaenAuth\Service\ShibService;
use UnicaenAuth\Service\User as UserService;
use UnicaenAuth\Service\UserContext;
use Zend\Authentication\AuthenticationService;
use ZfcUser\Mapper\UserInterface;

class UtilisateurControllerFactory
{
@@ -44,6 +45,7 @@ class UtilisateurControllerFactory
         * @var UserContextService $userContextService
         * @var UserService $userService
         * @var UtilisateurSearchService $utilisateurSearchService
         * @var UserInterface $mapper
         */
        $acteurService = $container->get(ActeurService::class);
        $roleService = $container->get('RoleService');
@@ -57,6 +59,7 @@ class UtilisateurControllerFactory
        $userContextService = $container->get(UserContext::class);
        $userService = $container->get('unicaen-auth_user_service');
        $utilisateurSearchService = $container->get(UtilisateurSearchService::class);
        $userMapper = $container->get('zfcuser_user_mapper');

        /**
         * @var InitCompteForm $initCompteForm
@@ -96,6 +99,7 @@ class UtilisateurControllerFactory
        $controller->setOptions($authModuleOptions); // requis
        $controller->setAuthModuleOptions($authModuleOptions);
        $controller->setSearchService($utilisateurSearchService);
        $controller->setUserMapper($userMapper);

        /**
         * @var SourceCodeStringHelper $sourceCodeHelper
+24 −10
Original line number Diff line number Diff line
@@ -2,7 +2,10 @@

namespace Application\Controller;

use Application\Entity\Db\Etablissement;
use Application\Entity\Db\Role;
use Application\Entity\Db\Variable;
use Application\Entity\UserWrapper;
use Application\Exception\DomainException;
use Application\Service\Actualite\ActualiteServiceAwareTrait;
use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait;
@@ -194,16 +197,7 @@ EOS
            return $this->redirect()->toRoute('home');
        }

        $individu = $this->userContextService->getIdentityDoctorant();
        if ($individu !== null) {
            $etablissement = $individu->getEtablissement();
        } else {
            $etablissement = $this->etablissementService->getRepository()->findOneForUserWrapper($userWrapper);
        }
        if ($etablissement === null) {
            throw new RuntimeException(
                "Anomalie: établissement introuvable pour l'utilisateur '{$userWrapper->getUsername()}'.");
        }
        $etablissement = $this->findEtablissementUtilisateur($userWrapper);

        $repo = $this->variableService->getRepository();
        $variable = $repo->findByCodeAndEtab(Variable::CODE_EMAIL_ASSISTANCE, $etablissement);
@@ -229,4 +223,24 @@ EOS
            'roles' => $this->userContextService->getSelectableIdentityRoles(),
        ];
    }

    /**
     * @param UserWrapper $userWrapper
     * @return Etablissement
     */
    protected function findEtablissementUtilisateur(UserWrapper $userWrapper): Etablissement
    {
        $individu = $this->userContextService->getIdentityDoctorant();
        if ($individu !== null) {
            return $individu->getEtablissement();
        }

        /** @var Role $role */
        $role = $this->userContextService->getSelectedIdentityRole();
        if ($role !== null && $structure = $role->getStructure()) {
            return $this->etablissementService->getRepository()->findByStructureId($structure->getId());
        }

        return $this->etablissementService->getRepository()->findOneForUserWrapper($userWrapper);
    }
}
 No newline at end of file
Loading