From 92fcada1da4fb2cae913f8bf53618229c382a479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 1 Mar 2024 12:39:01 +0100 Subject: [PATCH] fix: build form properly based on current user's role --- src/Controller/Common/AssignmentFilterController.php | 1 - src/Form/AssignmentFilterType.php | 11 ++++++----- templates/common/modal_assignment_filter.html.twig | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Controller/Common/AssignmentFilterController.php b/src/Controller/Common/AssignmentFilterController.php index 4dec39b..c39c24b 100644 --- a/src/Controller/Common/AssignmentFilterController.php +++ b/src/Controller/Common/AssignmentFilterController.php @@ -34,7 +34,6 @@ class AssignmentFilterController extends AbstractController 'max_date' => $filterOptions['maxDate'], 'job_profiles' => $filterOptions['jobProfiles'], 'hotels' => $filterOptions['hotels'], - 'user' => $this->getUser(), ]; $form = $this->createForm(AssignmentFilterType::class, $formData, $formOptions); diff --git a/src/Form/AssignmentFilterType.php b/src/Form/AssignmentFilterType.php index 690a8d7..08555b5 100644 --- a/src/Form/AssignmentFilterType.php +++ b/src/Form/AssignmentFilterType.php @@ -8,6 +8,7 @@ use App\Entity\JobProfile; use App\Entity\User; use App\Model\AssignmentFilterDto; use Symfony\Bridge\Doctrine\Form\Type\EntityType; +use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; @@ -16,6 +17,10 @@ use Symfony\Component\OptionsResolver\OptionsResolver; class AssignmentFilterType extends AbstractType { + public function __construct(private readonly Security $security) + { + } + public function buildForm(FormBuilderInterface $builder, array $options): void { $builder @@ -54,9 +59,7 @@ class AssignmentFilterType extends AbstractType ]) ; - /** @var User $user */ - $user = $options['user']; - if ($user->hasRole('ROLE_ADMINISTRATIVE')) { + if ($this->security->isGranted('ROLE_ADMINISTRATIVE')) { $builder->add('status', ChoiceType::class, [ 'label' => 'Status', 'required' => false, @@ -107,10 +110,8 @@ class AssignmentFilterType extends AbstractType 'job_profiles' => [], 'hotels' => [], ]) - ->setRequired(['user']) ->setAllowedTypes('min_date', [\DateTimeImmutable::class, 'null']) ->setAllowedTypes('max_date', [\DateTimeImmutable::class, 'null']) - ->setAllowedTypes('user', User::class) ; } } \ No newline at end of file diff --git a/templates/common/modal_assignment_filter.html.twig b/templates/common/modal_assignment_filter.html.twig index fd06459..b3344c6 100644 --- a/templates/common/modal_assignment_filter.html.twig +++ b/templates/common/modal_assignment_filter.html.twig @@ -5,7 +5,7 @@ {% block content %} {{ form_start(filterForm, { 'attr': { 'hx-post': app.request.uri, 'hx-target': '#htmx-modal', 'hx-swap': 'outerHTML' } }) }}
- {% if form.status is defined %} + {% if filterForm.status is defined %} {{ form_row(filterForm.status) }} {% endif %} {{ form_row(filterForm.dateFrom) }}