Loading src/UnicaenIndicateur/Controller/IndicateurController.php +24 −12 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurFormAwareTrait; use UnicaenIndicateur\Service\Abonnement\AbonnementServiceAwareTrait; use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait; use UnicaenApp\View\Model\CsvModel; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; use Laminas\Http\Request; Loading @@ -21,6 +22,7 @@ class IndicateurController extends AbstractActionController { use UserServiceAwareTrait; use AbonnementServiceAwareTrait; use MailServiceAwareTrait; use PerimetreServiceAwareTrait; use IndicateurFormAwareTrait; Loading Loading @@ -63,18 +65,28 @@ class IndicateurController extends AbstractActionController { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $mails = $this->getMailService()->getMailsByMotClef($indicateur->generateTag()); $userStructurePerimetre = [12,5]; $userRolePerimetre = [1,15]; $userPerimetre = null; switch ($indicateur->getPerimetre()) { case Indicateur::PERIMETRE_STRUCTURE: $userPerimetre = $userStructurePerimetre; break; case Indicateur::PERIMETRE_ROLE: $userPerimetre = $userRolePerimetre; break; } $user = $this->getUserService()->getConnectedUser(); $role = $this->getUserService()->getConnectedRole(); $perimetres = $this->getPerimetreService()->getPerimetres($user, $role); $indicateurPerimetre = $indicateur->getPerimetre(); $perimetreValides = array_filter($perimetres, function(string $p) use ($indicateurPerimetre) { return (strtolower(explode('_', $p)[0]) === strtolower($indicateurPerimetre)); }); $userPerimetre = array_map(function ($p) { return explode('_', $p)[1];}, $perimetreValides); // $userPerimetre = null; // switch ($indicateur->getPerimetre()) { // case Indicateur::PERIMETRE_STRUCTURE: //// $userPerimetre = $user->getPerimetreStructure(); // $userPerimetre = $userStructurePerimetre; // break; // case Indicateur::PERIMETRE_ROLE: //// $userPerimetre = $user->getPerimetreRole(); // $userPerimetre = $userRolePerimetre; // break; // } $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur->getViewId()); if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $userPerimetre); Loading src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php +7 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurForm; use UnicaenIndicateur\Service\Abonnement\AbonnementService; use UnicaenIndicateur\Service\Indicateur\IndicateurService; use Interop\Container\ContainerInterface; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceInterface; use UnicaenMail\Service\Mail\MailService; use UnicaenUtilisateur\Service\User\UserService;; Loading @@ -26,12 +27,17 @@ class IndicateurControllerFactory { * @var IndicateurService $indicateurService * @var MailService $mailService * @var UserService $userService * @var PerimetreServiceInterface $perimetreService */ $abonnementService = $container->get(AbonnementService::class); $indicateurService = $container->get(IndicateurService::class); $mailService = $container->get(MailService::class); $userService = $container->get(UserService::class); $config = $container->get('config'); $perimetreServiceKey = $container->get($config['unicaen-indicateur']['perimetreService']); $perimetreService = $container->get($perimetreServiceKey::class); /** * @var IndicateurForm $indicateurForm */ Loading @@ -41,6 +47,7 @@ class IndicateurControllerFactory { $controller->setAbonnementService($abonnementService); $controller->setIndicateurService($indicateurService); $controller->setMailService($mailService); $controller->setPerimetreService($perimetreService); $controller->setUserService($userService); $controller->setIndicateurForm($indicateurForm); return $controller; Loading src/UnicaenIndicateur/Service/Perimetre/PerimetreServiceAwareTrait.php 0 → 100644 +22 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\Perimetre; use Application\Service\Perimetre\PerimetreService; trait PerimetreServiceAwareTrait { private PerimetreService $perimetreService; public function getPerimetreService(): PerimetreService { return $this->perimetreService; } public function setPerimetreService(PerimetreService $perimetreService): void { $this->perimetreService = $perimetreService; } } No newline at end of file src/UnicaenIndicateur/Service/Perimetre/PerimetreServiceInterface.php 0 → 100644 +11 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\Perimetre; use UnicaenUtilisateur\Entity\Db\AbstractRole; use UnicaenUtilisateur\Entity\Db\AbstractUser; interface PerimetreServiceInterface { public function getPerimetres(AbstractUser $user, AbstractRole $role) : array; } No newline at end of file Loading
src/UnicaenIndicateur/Controller/IndicateurController.php +24 −12 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurFormAwareTrait; use UnicaenIndicateur\Service\Abonnement\AbonnementServiceAwareTrait; use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait; use UnicaenApp\View\Model\CsvModel; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceAwareTrait; use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; use Laminas\Http\Request; Loading @@ -21,6 +22,7 @@ class IndicateurController extends AbstractActionController { use UserServiceAwareTrait; use AbonnementServiceAwareTrait; use MailServiceAwareTrait; use PerimetreServiceAwareTrait; use IndicateurFormAwareTrait; Loading Loading @@ -63,18 +65,28 @@ class IndicateurController extends AbstractActionController { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); $mails = $this->getMailService()->getMailsByMotClef($indicateur->generateTag()); $userStructurePerimetre = [12,5]; $userRolePerimetre = [1,15]; $userPerimetre = null; switch ($indicateur->getPerimetre()) { case Indicateur::PERIMETRE_STRUCTURE: $userPerimetre = $userStructurePerimetre; break; case Indicateur::PERIMETRE_ROLE: $userPerimetre = $userRolePerimetre; break; } $user = $this->getUserService()->getConnectedUser(); $role = $this->getUserService()->getConnectedRole(); $perimetres = $this->getPerimetreService()->getPerimetres($user, $role); $indicateurPerimetre = $indicateur->getPerimetre(); $perimetreValides = array_filter($perimetres, function(string $p) use ($indicateurPerimetre) { return (strtolower(explode('_', $p)[0]) === strtolower($indicateurPerimetre)); }); $userPerimetre = array_map(function ($p) { return explode('_', $p)[1];}, $perimetreValides); // $userPerimetre = null; // switch ($indicateur->getPerimetre()) { // case Indicateur::PERIMETRE_STRUCTURE: //// $userPerimetre = $user->getPerimetreStructure(); // $userPerimetre = $userStructurePerimetre; // break; // case Indicateur::PERIMETRE_ROLE: //// $userPerimetre = $user->getPerimetreRole(); // $userPerimetre = $userRolePerimetre; // break; // } $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur->getViewId()); if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur, $userPerimetre); Loading
src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php +7 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurForm; use UnicaenIndicateur\Service\Abonnement\AbonnementService; use UnicaenIndicateur\Service\Indicateur\IndicateurService; use Interop\Container\ContainerInterface; use UnicaenIndicateur\Service\Perimetre\PerimetreServiceInterface; use UnicaenMail\Service\Mail\MailService; use UnicaenUtilisateur\Service\User\UserService;; Loading @@ -26,12 +27,17 @@ class IndicateurControllerFactory { * @var IndicateurService $indicateurService * @var MailService $mailService * @var UserService $userService * @var PerimetreServiceInterface $perimetreService */ $abonnementService = $container->get(AbonnementService::class); $indicateurService = $container->get(IndicateurService::class); $mailService = $container->get(MailService::class); $userService = $container->get(UserService::class); $config = $container->get('config'); $perimetreServiceKey = $container->get($config['unicaen-indicateur']['perimetreService']); $perimetreService = $container->get($perimetreServiceKey::class); /** * @var IndicateurForm $indicateurForm */ Loading @@ -41,6 +47,7 @@ class IndicateurControllerFactory { $controller->setAbonnementService($abonnementService); $controller->setIndicateurService($indicateurService); $controller->setMailService($mailService); $controller->setPerimetreService($perimetreService); $controller->setUserService($userService); $controller->setIndicateurForm($indicateurForm); return $controller; Loading
src/UnicaenIndicateur/Service/Perimetre/PerimetreServiceAwareTrait.php 0 → 100644 +22 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\Perimetre; use Application\Service\Perimetre\PerimetreService; trait PerimetreServiceAwareTrait { private PerimetreService $perimetreService; public function getPerimetreService(): PerimetreService { return $this->perimetreService; } public function setPerimetreService(PerimetreService $perimetreService): void { $this->perimetreService = $perimetreService; } } No newline at end of file
src/UnicaenIndicateur/Service/Perimetre/PerimetreServiceInterface.php 0 → 100644 +11 −0 Original line number Diff line number Diff line <?php namespace UnicaenIndicateur\Service\Perimetre; use UnicaenUtilisateur\Entity\Db\AbstractRole; use UnicaenUtilisateur\Entity\Db\AbstractUser; interface PerimetreServiceInterface { public function getPerimetres(AbstractUser $user, AbstractRole $role) : array; } No newline at end of file