src/App/Form/Forms/Security/AccountType.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Form\Forms\Security;
  3. use Platform\SecurityBundle\Entity\Identity\Account;
  4. use Platform\SecurityBundle\Validator\Constraints\PasswordStrength;
  5. use Products\NotificationsBundle\Form\Type\InlineCheckboxType;
  6. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10. use Symfony\Component\Form\FormBuilderInterface;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. final class AccountType extends AbstractType
  13. {
  14.     /**
  15.      * {@inheritdoc}
  16.      */
  17.     public function buildForm(FormBuilderInterface $builder, array $options)
  18.     {
  19.         $builder
  20.             ->add('email'EmailType::class)
  21.             ->add('systemProfile'SystemProfileType::class)
  22.             ->add('password'PasswordType::class, [
  23.                 'required' => ($options['password'] === true),
  24.                 'label_tooltip' => true,
  25.                 'mapped' => false,
  26.                 'constraints' => [
  27.                     new PasswordStrength(),
  28.                 ],
  29.             ])
  30.             ->add('notify'InlineCheckboxType::class, [
  31.                 'mapped' => false,
  32.                 'label_tooltip' => true,
  33.                 'label' => 'Notify User',
  34.                 'required' => false,
  35.                 'data' => $options['notify'],
  36.             ]);
  37.     }
  38.     /**
  39.      * {@inheritdoc}
  40.      */
  41.     public function configureOptions(OptionsResolver $resolver)
  42.     {
  43.         $resolver->setDefaults([
  44.             'locale' => 'en',
  45.             'password' => true,
  46.             'notify' => true,
  47.             'constraints' => [
  48.                 new UniqueEntity([
  49.                     'entityClass' => Account::class,
  50.                     'fields' => 'email',
  51.                 ]),
  52.             ],
  53.         ]);
  54.     }
  55. }