mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-03 22:47:45 +00:00
resolve center in Report Controller
This commit is contained in:
parent
96ddc73e45
commit
fcb057c55b
@ -11,12 +11,15 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace Chill\ReportBundle\Controller;
|
namespace Chill\ReportBundle\Controller;
|
||||||
|
|
||||||
|
use Chill\DocStoreBundle\Security\Authorization\PersonDocumentVoter;
|
||||||
use Chill\MainBundle\Pagination\PaginatorFactory;
|
use Chill\MainBundle\Pagination\PaginatorFactory;
|
||||||
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
|
||||||
|
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
|
||||||
use Chill\PersonBundle\Entity\Person;
|
use Chill\PersonBundle\Entity\Person;
|
||||||
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
use Chill\PersonBundle\Privacy\PrivacyEvent;
|
||||||
use Chill\ReportBundle\Entity\Report;
|
use Chill\ReportBundle\Entity\Report;
|
||||||
use Chill\ReportBundle\Form\ReportType;
|
use Chill\ReportBundle\Form\ReportType;
|
||||||
|
use Chill\ReportBundle\Security\Authorization\ReportVoter;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
@ -25,7 +28,7 @@ use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
|||||||
use Symfony\Component\Form\Extension\Core\Type\FormType;
|
use Symfony\Component\Form\Extension\Core\Type\FormType;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
|
use Symfony\Component\Security\Core\Security;
|
||||||
use function count;
|
use function count;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,17 +51,25 @@ class ReportController extends AbstractController
|
|||||||
*/
|
*/
|
||||||
protected $paginator;
|
protected $paginator;
|
||||||
|
|
||||||
|
private CenterResolverManagerInterface $centerResolverManager;
|
||||||
|
|
||||||
|
private Security $security;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ReportController constructor.
|
* ReportController constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
EventDispatcherInterface $eventDispatcher,
|
EventDispatcherInterface $eventDispatcher,
|
||||||
AuthorizationHelper $authorizationHelper,
|
AuthorizationHelper $authorizationHelper,
|
||||||
PaginatorFactory $paginator
|
PaginatorFactory $paginator,
|
||||||
|
CenterResolverManagerInterface $centerResolverManager,
|
||||||
|
Security $security
|
||||||
) {
|
) {
|
||||||
$this->eventDispatcher = $eventDispatcher;
|
$this->eventDispatcher = $eventDispatcher;
|
||||||
$this->authorizationHelper = $authorizationHelper;
|
$this->authorizationHelper = $authorizationHelper;
|
||||||
$this->paginator = $paginator;
|
$this->paginator = $paginator;
|
||||||
|
$this->centerResolverManager = $centerResolverManager;
|
||||||
|
$this->security = $security;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -218,9 +229,9 @@ class ReportController extends AbstractController
|
|||||||
|
|
||||||
$reachableScopes = $this->authorizationHelper
|
$reachableScopes = $this->authorizationHelper
|
||||||
->getReachableScopes(
|
->getReachableScopes(
|
||||||
$this->getUser(),
|
$this->security->getUser(),
|
||||||
new Role('CHILL_REPORT_SEE'),
|
ReportVoter::SEE,
|
||||||
$person->getCenter()
|
$this->centerResolverManager->resolveCenters($person)
|
||||||
);
|
);
|
||||||
|
|
||||||
$total = $em
|
$total = $em
|
||||||
@ -578,8 +589,8 @@ class ReportController extends AbstractController
|
|||||||
),
|
),
|
||||||
'method' => 'PUT',
|
'method' => 'PUT',
|
||||||
'cFGroup' => $entity->getCFGroup(),
|
'cFGroup' => $entity->getCFGroup(),
|
||||||
'role' => new Role('CHILL_REPORT_UPDATE'),
|
'role' => ReportVoter::UPDATE,
|
||||||
'center' => $entity->getPerson()->getCenter(),
|
'center' => $this->centerResolverManager->resolveCenters($entity->getPerson()),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
services:
|
services:
|
||||||
Chill\ReportBundle\Controller\ReportController:
|
Chill\ReportBundle\Controller\ReportController:
|
||||||
arguments:
|
autowire: true
|
||||||
$eventDispatcher: '@Symfony\Component\EventDispatcher\EventDispatcherInterface'
|
autoconfigure: true
|
||||||
$authorizationHelper: '@Chill\MainBundle\Security\Authorization\AuthorizationHelper'
|
|
||||||
$paginator: '@Chill\MainBundle\Pagination\PaginatorFactory'
|
|
||||||
tags: ['controller.service_arguments']
|
tags: ['controller.service_arguments']
|
||||||
|
Loading…
x
Reference in New Issue
Block a user