Commit 87f7196d authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Filtre établissement: exploitation du privilège...

Filtre établissement: exploitation du privilège STRUCTURE_CONSULTATION_TOUTES_STRUCTURES pour restreindre ou non la liste des établissements.
parent 41ac28b2
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ use Application\Service\These\TheseRechercheService;
use Application\Service\These\TheseService;
use Application\Service\UniteRecherche\UniteRechercheService;
use Application\Service\UserContextService;
use UnicaenAuth\Service\AuthorizeService;
use Zend\ServiceManager\ServiceLocatorInterface;

class TheseRechercheServiceFactory
@@ -34,6 +35,7 @@ class TheseRechercheServiceFactory
         * @var StructureService $structureService
         * @var DomaineScientifiqueService $domaineService
         * @var FinancementService $financementService
         * @var AuthorizeService $authorizeService
         */
        $theseService = $serviceLocator->get('TheseService');
        $userContextService = $serviceLocator->get('UserContextService');
@@ -44,6 +46,7 @@ class TheseRechercheServiceFactory
        $structureService = $serviceLocator->get(StructureService::class);
        $domaineService = $serviceLocator->get(DomaineScientifiqueService::class);
        $financementService = $serviceLocator->get(FinancementService::class);
        $authorizeService = $serviceLocator->get('BjyAuthorize\Service\Authorize');

        $service = new TheseRechercheService();
        $service->setTheseService($theseService);
@@ -55,6 +58,7 @@ class TheseRechercheServiceFactory
        $service->setStructureService($structureService);
        $service->setDomaineScientifiqueService($domaineService);
        $service->setFinancementService($financementService);
        $service->setAuthorizeService($authorizeService);

        return $service;
    }
+6 −1
Original line number Diff line number Diff line
@@ -12,7 +12,9 @@ use Application\Entity\Db\TheseAnneeUniv;
use Application\Entity\Db\TypeStructure;
use Application\Entity\Db\UniteRecherche;
use Application\Entity\UserWrapperFactory;
use Application\Provider\Privilege\StructurePrivileges;
use Application\QueryBuilder\TheseQueryBuilder;
use Application\Service\AuthorizeServiceAwareTrait;
use Application\Service\DomaineScientifiqueServiceAwareTrait;
use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
@@ -41,6 +43,7 @@ class TheseRechercheService
    use SourceServiceAwareTrait;
    use DomaineScientifiqueServiceAwareTrait;
    use FinancementServiceAwareTrait;
    use AuthorizeServiceAwareTrait;

    /**
     * @var bool
@@ -499,9 +502,11 @@ class TheseRechercheService

    private function fetchEtablissementsOptions()
    {
        $privilege = StructurePrivileges::STRUCTURE_CONSULTATION_TOUTES_STRUCTURES;
        $toutesStructuresAllowed = $this->authorizeService->isAllowed(StructurePrivileges::getResourceId($privilege));
        if (!$toutesStructuresAllowed) {
            $role = $this->getSelectedIdentityRole();

        if ($role->isEtablissementDependant()) {
            return [
                $this->optionify($role->getStructure()->getEtablissement())
            ];