lib/composer/SecurityBundle/src/VisualMedia/SecurityBundle/Form/Type/FrontendLoginType.php line 26

Open in your IDE?
  1. <?php
  2. /**
  3.  * Frontend Login Type
  4.  *
  5.  * @author Vincent van Waasbergen <v.vanwaasbergen@visualmedia.nl>
  6.  */
  7. namespace VisualMedia\SecurityBundle\Form\Type;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  10. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  11. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  14. use Symfony\Component\Form\FormBuilderInterface;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. use Symfony\Component\Routing\RouterInterface;
  17. use VisualMedia\LisaBundle\Form\Type\BooleanType;
  18. use VisualMedia\SecurityBundle\Service\LoginHandler;
  19. /**
  20.  * Frontend Login Type
  21.  */
  22. class FrontendLoginType extends AbstractType
  23. {
  24.     /**
  25.      * Router
  26.      * @var RouterInterface
  27.      */
  28.     protected $router;
  29.     /**
  30.      * Constructor
  31.      *
  32.      * @param RouterInterface $router
  33.      */
  34.     public function __construct(RouterInterface $router)
  35.     {
  36.         $this->router $router;
  37.     }
  38.     /**
  39.      * {@inheritDoc}
  40.      */
  41.     public function buildForm(FormBuilderInterface $builder, array $options): void
  42.     {
  43.         $builder->setAction($this->router->generate($options['route']));
  44.         $builder->add(LoginHandler::RETURN_URLHiddenType::class, array(
  45.             'required' => false,
  46.         ));
  47.         $builder->add('_username'TextType::class, array(
  48.             'label' => 'login.username',
  49.             'required' => false,
  50.         ));
  51.         $builder->add('_password'PasswordType::class, array(
  52.             'label' => 'login.password',
  53.             'required' => false,
  54.         ));
  55.         $builder->add('_remember_me'CheckboxType::class, array(
  56.             'label' => 'login.remember_me',
  57.             'required' => false,
  58.         ));
  59.         $builder->add('login'SubmitType::class, array('label' => 'login.login'));
  60.     }
  61.     /**
  62.      * {@inheritDoc}
  63.      */
  64.     public function getBlockPrefix(): string
  65.     {
  66.         return '';
  67.     }
  68.     /**
  69.      * {@inheritDoc}
  70.      */
  71.     public function getName(): string
  72.     {
  73.         return 'frontend_login';
  74.     }
  75.     /**
  76.      * {@inheritDoc}
  77.      */
  78.     public function configureOptions(OptionsResolver $resolver): void
  79.     {
  80.         $resolver->setDefaults(array(
  81.             'route' => 'frontend_login',
  82.             'translation_domain' => 'security',
  83.             'csrf_token_id' => 'authenticate'
  84.         ));
  85.     }
  86. }