Compare commits

...

3 Commits

4 changed files with 38 additions and 27 deletions

View File

@@ -11,12 +11,15 @@ declare(strict_types=1);
namespace Chill\ReportBundle\Controller;
use Chill\DocStoreBundle\Security\Authorization\PersonDocumentVoter;
use Chill\MainBundle\Pagination\PaginatorFactory;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Privacy\PrivacyEvent;
use Chill\ReportBundle\Entity\Report;
use Chill\ReportBundle\Form\ReportType;
use Chill\ReportBundle\Security\Authorization\ReportVoter;
use DateTime;
use RuntimeException;
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\HttpFoundation\Request;
use Symfony\Component\Security\Core\Role\Role;
use Symfony\Component\Security\Core\Security;
use function count;
/**
@@ -48,17 +51,25 @@ class ReportController extends AbstractController
*/
protected $paginator;
private CenterResolverManagerInterface $centerResolverManager;
private Security $security;
/**
* ReportController constructor.
*/
public function __construct(
EventDispatcherInterface $eventDispatcher,
AuthorizationHelper $authorizationHelper,
PaginatorFactory $paginator
PaginatorFactory $paginator,
CenterResolverManagerInterface $centerResolverManager,
Security $security
) {
$this->eventDispatcher = $eventDispatcher;
$this->authorizationHelper = $authorizationHelper;
$this->paginator = $paginator;
$this->centerResolverManager = $centerResolverManager;
$this->security = $security;
}
/**
@@ -120,7 +131,7 @@ class ReportController extends AbstractController
->trans('The form is not valid. The report has not been created !')
);
return $this->render('ChillReportBundle:Report:new.html.twig', [
return $this->render('@ChillReport/Report/new.html.twig', [
'entity' => $entity,
'form' => $form->createView(),
'person' => $person,
@@ -140,7 +151,7 @@ class ReportController extends AbstractController
$em = $this->getDoctrine()->getManager();
/** @var Report $report */
$report = $em->getRepository('ChillReportBundle:Report')->find($report_id);
$report = $em->getRepository(Report::class)->find($report_id);
if (!$report) {
throw $this->createNotFoundException(
@@ -189,7 +200,7 @@ class ReportController extends AbstractController
$cFGroup = $em->getRepository(\Chill\CustomFieldsBundle\Entity\CustomFieldsGroup::class)->find($cf_group_id);
$reports = $em->getRepository('ChillReportBundle:Report')->findByCFGroup($cFGroup);
$response = $this->render('ChillReportBundle:Report:export.csv.twig', [
$response = $this->render('@ChillReport/Report/export.csv.twig', [
'reports' => $reports,
'cf_group' => $cFGroup,
]);
@@ -218,9 +229,9 @@ class ReportController extends AbstractController
$reachableScopes = $this->authorizationHelper
->getReachableScopes(
$this->getUser(),
new Role('CHILL_REPORT_SEE'),
$person->getCenter()
$this->security->getUser(),
ReportVoter::SEE,
$this->centerResolverManager->resolveCenters($person)
);
$total = $em
@@ -298,7 +309,7 @@ class ReportController extends AbstractController
$form = $this->createCreateForm($entity, $person, $cFGroup);
return $this->render('ChillReportBundle:Report:new.html.twig', [
return $this->render('@ChillReport/Report/new.html.twig', [
'entity' => $entity,
'form' => $form->createView(),
'person' => $person,
@@ -515,7 +526,7 @@ class ReportController extends AbstractController
$person = $em->getRepository(\Chill\PersonBundle\Entity\Person::class)->find($person_id);
$entity = $em->getRepository('ChillReportBundle:Report')->find($report_id);
$entity = $em->getRepository(Report::class)->find($report_id);
if (!$entity || !$person) {
throw $this->createNotFoundException(
@@ -532,7 +543,7 @@ class ReportController extends AbstractController
]);
$this->eventDispatcher->dispatch(PrivacyEvent::PERSON_PRIVACY_EVENT, $event);
return $this->render('ChillReportBundle:Report:view.html.twig', [
return $this->render('@ChillReport/Report/view.html.twig', [
'entity' => $entity,
'person' => $person,
]);
@@ -578,8 +589,8 @@ class ReportController extends AbstractController
),
'method' => 'PUT',
'cFGroup' => $entity->getCFGroup(),
'role' => new Role('CHILL_REPORT_UPDATE'),
'center' => $entity->getPerson()->getCenter(),
//'role' => ReportVoter::UPDATE,
//'center' => $this->centerResolverManager->resolveCenters($entity->getPerson()),
]);
}
}

View File

@@ -74,15 +74,15 @@ class ReportType extends AbstractType
'group' => $options['cFGroup'], ]
);
$this->appendScopeChoices(
$builder,
$options['role'],
$options['center'],
$this->user,
$this->authorizationHelper,
$this->translatableStringHelper,
$this->om
);
//$this->appendScopeChoices(
// $builder,
// $options['role'],
// $options['center'],
// $this->user,
// $this->authorizationHelper,
// $this->translatableStringHelper,
// $this->om
//);
}
public function configureOptions(OptionsResolver $resolver)
@@ -97,7 +97,7 @@ class ReportType extends AbstractType
$resolver->setAllowedTypes('cFGroup', 'Chill\CustomFieldsBundle\Entity\CustomFieldsGroup');
$this->appendScopeChoicesOptions($resolver);
//$this->appendScopeChoicesOptions($resolver);
}
/**

View File

@@ -25,7 +25,9 @@
{{ form_row(edit_form.user) }}
{{ form_row(edit_form.date) }}
{#
{{ form_row(edit_form.scope) }}
#}
{{ form_row(edit_form.cFData) }}
{{ form_widget(edit_form) }}

View File

@@ -1,7 +1,5 @@
services:
Chill\ReportBundle\Controller\ReportController:
arguments:
$eventDispatcher: '@Symfony\Component\EventDispatcher\EventDispatcherInterface'
$authorizationHelper: '@Chill\MainBundle\Security\Authorization\AuthorizationHelper'
$paginator: '@Chill\MainBundle\Pagination\PaginatorFactory'
autowire: true
autoconfigure: true
tags: ['controller.service_arguments']