src/Form/EventListener/User/AddRepeatedPasswordFieldSubscriber.php line 22

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Form\EventListener\User;
  4. use App\Entity\Security\User;
  5. use App\Form\FormHelper;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  8. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  9. use Symfony\Component\Form\FormEvent;
  10. use Symfony\Component\Form\FormEvents;
  11. class AddRepeatedPasswordFieldSubscriber extends FormHelper implements EventSubscriberInterface
  12. {
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [FormEvents::PRE_SET_DATA => 'preSetData'];
  16.     }
  17.     public function preSetData(FormEvent $event): void
  18.     {
  19.         /** @var User $user */
  20.         $user $event->getData();
  21.         if (null !== $user && null !== $user->getId() && 'user_password' !== $event->getForm()->getName()) {
  22.             return;
  23.         }
  24.         $event->getForm()->add('plainPassword'RepeatedType::class, $this->getRepeatedParameters(
  25.             PasswordType::class,
  26.             true,
  27.             'app.global.user.form.password.first',
  28.             'app.global.user.form.password.second',
  29.             'app.global.user.form.password.not_identical',
  30.             [
  31.                 'autocomplete' => 'off',
  32.             ]
  33.         ));
  34.     }
  35. }