Skip to content
Snippets Groups Projects
Commit 5bb92ffe authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Notions de perimètres ok

parent 46bb22b5
No related branches found
No related tags found
No related merge requests found
Pipeline #33866 failed
......@@ -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;
......@@ -21,6 +22,7 @@ class IndicateurController extends AbstractActionController {
use UserServiceAwareTrait;
use AbonnementServiceAwareTrait;
use MailServiceAwareTrait;
use PerimetreServiceAwareTrait;
use IndicateurFormAwareTrait;
......@@ -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);
......
......@@ -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;;
......@@ -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
*/
......@@ -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;
......
<?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
<?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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment