mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-11-04 11:18:25 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			v3.12.0
			...
			71-adapt-r
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2dcc65d172 | |||
| 2d6a0d14eb | |||
| fcb057c55b | 
@@ -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()),
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -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) }}
 | 
			
		||||
 
 | 
			
		||||
@@ -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']
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user