src/Form/RegisterUserType.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\User;
  4. use App\Entity\UserGroup;
  5. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  6. use Symfony\Component\Form\AbstractType;
  7. use App\Repository\UserGroupRepository;
  8. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  9. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  11. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  12. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. use Symfony\Component\Validator\Constraints\IsTrue;
  16. class RegisterUserType extends AbstractType
  17. {
  18.     public function buildForm(FormBuilderInterface $builder, array $options)
  19.     {
  20.         $user=$options['user'];
  21.         if($options['is_recover_password']){
  22.             $builder->add('password'RepeatedType::class, [
  23.                 'type' => PasswordType::class,
  24.                 'invalid_message' => 'Password must match.',
  25.                 'required' => false,
  26.                 'first_options'  => ['label' => 'Password'],
  27.                 'second_options' => ['label' => 'Confirm Password'],
  28.             ]);
  29.         }
  30.         else{
  31.             $builder
  32. //                ->add('username')
  33. //                ->add('prename')
  34. //                ->add('surname')
  35.                 ->add('email')
  36.                 ->add('id',HiddenType::class,array(
  37.                     'required'=>false,
  38.                 ))
  39.                 ;
  40.             if($options['is_logged_in']){
  41.                 $builder
  42.                     ->add('phone')
  43.                     ->add('file')
  44.                     ->add('password'PasswordType::class, [
  45.                         'required' => false
  46.                     ])
  47.                 ;
  48.             }
  49.             if($options['is_admin']){
  50.                 $builder
  51.                     ->add('sendInvitation'CheckboxType::class, ['mapped' => false'required' => false'label' => 'Yes I would like to send invitation'])
  52.                     ->add('userGroups',EntityType::class,
  53.                         array(
  54.                             'class' => UserGroup::class,
  55.                             'required'=>false,
  56.                             'expanded' => false,
  57.                             'multiple' => true,
  58.                             'query_builder' => function (UserGroupRepository $er) use($user) {
  59.                                 return $er->findAllValidUserGroups($user->getWorkspace());
  60.                             },
  61.                         ))
  62.                     ->add('info')
  63.                 ;
  64.                 if($options['is_new']){
  65.                     $builder
  66.                         ->add('save'SubmitType::class, ['label' => 'buttons.submit''attr' => ['class' => 'bg-green elastic-width']])
  67.                         ->add('saveAndAdd'SubmitType::class, ['label' => 'buttons.submit_and_new''attr' => ['class' => 'bg-grey elastic-width']]);
  68.                 }
  69.             }
  70.             if($options['is_user_registration']){
  71.                 $builder
  72.                     ->add('agreeTerms'CheckboxType::class, [
  73.                         'mapped' => false,
  74.                         'label' => 'register.terms',
  75.                         'constraints' => [
  76.                             new IsTrue([
  77.                                 'message' => 'You should agree to our terms.',
  78.                             ]),
  79.                         ],
  80.                     ])
  81.                     ->add('acceptPolicy'CheckboxType::class, [
  82.                         'mapped' => false,
  83.                         'label' => 'register.policy',
  84.                         'constraints' => [
  85.                             new IsTrue([
  86.                                 'message' => 'You should agree to our privacy policy.',
  87.                             ]),
  88.                         ],
  89.                     ])
  90. //                    ->add('customerDetail', CustomerDetailType::class, ['is_customer_detail' => false])
  91.                 ;
  92.             }
  93.         }
  94.     }
  95.     public function configureOptions(OptionsResolver $resolver)
  96.     {
  97.         $resolver->setDefaults([
  98.             'data_class' => User::class,
  99.             'is_admin' => false,
  100.             'is_user_registration' => false,
  101.             'is_logged_in' => false,
  102.             'is_new' => false,
  103.             'is_recover_password' => false,
  104.             'user'=>'',
  105.         ]);
  106.     }
  107. }