From 06cbe8325c3891272bd3a5818956a67021ccd859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 16 Dec 2021 21:39:59 +0100 Subject: [PATCH] fix person validation --- .../Controller/PersonApiController.php | 1 - .../Controller/PersonController.php | 4 +-- .../ChillPersonBundle/Entity/Person.php | 30 ++++--------------- .../ChillPersonBundle/Form/PersonType.php | 4 +-- .../ChillPersonBundle/config/validation.yaml | 2 -- 5 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php b/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php index 0bf33d688..b94e24b0c 100644 --- a/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php +++ b/src/Bundle/ChillPersonBundle/Controller/PersonApiController.php @@ -20,7 +20,6 @@ use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; -use Symfony\Component\Security\Core\Role\Role; use function array_filter; use function array_values; diff --git a/src/Bundle/ChillPersonBundle/Controller/PersonController.php b/src/Bundle/ChillPersonBundle/Controller/PersonController.php index 3f18fe5f6..f810852c0 100644 --- a/src/Bundle/ChillPersonBundle/Controller/PersonController.php +++ b/src/Bundle/ChillPersonBundle/Controller/PersonController.php @@ -131,6 +131,8 @@ final class PersonController extends AbstractController ->getFlashBag()->add('error', $this->translator ->trans('This form contains errors')); } elseif ($form->isSubmitted() && $form->isValid()) { + $this->em->flush(); + $this->get('session')->getFlashBag() ->add( 'success', @@ -138,8 +140,6 @@ final class PersonController extends AbstractController ->trans('The person data has been updated') ); - $this->em->flush(); - return $this->redirectToRoute('chill_person_view', [ 'person_id' => $person->getId(), ]); diff --git a/src/Bundle/ChillPersonBundle/Entity/Person.php b/src/Bundle/ChillPersonBundle/Entity/Person.php index 220a8a307..73b83f246 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Person.php +++ b/src/Bundle/ChillPersonBundle/Entity/Person.php @@ -62,9 +62,7 @@ use function in_array; * @DiscriminatorMap(typeProperty="type", mapping={ * "person": Person::class * }) - * @PersonHasCenter( - * groups={"general", "creation"} - * ) + * @PersonHasCenter * @HouseholdMembershipSequential( * groups={"household_memberships"} * ) @@ -250,8 +248,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * * @ORM\Column(type="text", nullable=true) * @Assert\Email( - * checkMX=true, - * groups={"general", "creation"} + * checkMX=true * ) */ private $email = ''; @@ -262,12 +259,9 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @var string * * @ORM\Column(type="string", length=255) - * @Assert\NotBlank( - * groups={"general", "creation"} - * ) + * @Assert\NotBlank * @Assert\Length( * max=255, - * groups={"general", "creation"} * ) */ private $firstName; @@ -288,9 +282,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @var string * * @ORM\Column(type="string", length=9, nullable=true) - * @Assert\NotNull( - * groups={"general", "creation"} - * ) + * @Assert\NotNull */ private $gender; @@ -334,12 +326,9 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @var string * * @ORM\Column(type="string", length=255) - * @Assert\NotBlank( - * groups={"general", "creation"} - * ) + * @Assert\NotBlank * @Assert\Length( * max=255, - * groups={"general", "creation"} * ) */ private $lastName; @@ -367,9 +356,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @var DateTime * * @ORM\Column(type="date", nullable=true) - * @Assert\Date( - * groups={"general", "creation"} - * ) + * @Assert\Date */ private ?DateTime $maritalStatusDate = null; @@ -388,11 +375,9 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @ORM\Column(type="text") * @Assert\Regex( * pattern="/^([\+{1}])([0-9\s*]{4,20})$/", - * groups={"general", "creation"} * ) * @PhonenumberConstraint( * type="mobile", - * groups={"general", "creation"} * ) */ private string $mobilenumber = ''; @@ -430,7 +415,6 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * ) * @Assert\Valid( * traverse=true, - * groups={"general", "creation"} * ) */ private $otherPhoneNumbers; @@ -449,11 +433,9 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI * @ORM\Column(type="text") * @Assert\Regex( * pattern="/^([\+{1}])([0-9\s*]{4,20})$/", - * groups={"general", "creation"} * ) * @PhonenumberConstraint( * type="landline", - * groups={"general", "creation"} * ) */ private string $phonenumber = ''; diff --git a/src/Bundle/ChillPersonBundle/Form/PersonType.php b/src/Bundle/ChillPersonBundle/Form/PersonType.php index 99382dec2..bafe21277 100644 --- a/src/Bundle/ChillPersonBundle/Form/PersonType.php +++ b/src/Bundle/ChillPersonBundle/Form/PersonType.php @@ -21,6 +21,7 @@ use Chill\MainBundle\Form\Type\Select2CountryType; use Chill\MainBundle\Form\Type\Select2LanguageType; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper; +use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\PersonPhone; use Chill\PersonBundle\Form\Type\GenderType; use Chill\PersonBundle\Form\Type\PersonAltNameType; @@ -234,8 +235,7 @@ class PersonType extends AbstractType public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ - 'data_class' => 'Chill\PersonBundle\Entity\Person', - 'validation_groups' => ['general', 'creation'], + 'data_class' => Person::class, ]); $resolver->setRequired([ diff --git a/src/Bundle/ChillPersonBundle/config/validation.yaml b/src/Bundle/ChillPersonBundle/config/validation.yaml index c41513778..192fc60f6 100644 --- a/src/Bundle/ChillPersonBundle/config/validation.yaml +++ b/src/Bundle/ChillPersonBundle/config/validation.yaml @@ -21,8 +21,6 @@ Chill\PersonBundle\Entity\PersonPhone: phonenumber: - Regex: pattern: '/^([\+{1}])([0-9\s*]{4,20})$/' - groups: [ general, creation ] message: 'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33123456789' - Chill\MainBundle\Validation\Constraint\PhonenumberConstraint: type: any - groups: [ general, creation ]