<?php
namespace Whater\Infrastructure\SecurityBundle\Form\Type;
use Whater\Infrastructure\SecurityBundle\Form\DTO\LoginDTO;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Class LoginType
*
* @package Whater\Infrastructure\SecurityBundle\Form\Type
*/
class LoginType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, [
'constraints' => array(
new Assert\NotBlank(),
new Assert\Length(array(
'min' => 3,
'max' => 64
))
)
])
->add('password', PasswordType::class, [
'constraints' => array(
new Assert\NotBlank(),
new Assert\Length(array(
'min' => 8,
'max' => 255
))
)
])
->add('remember_me', CheckboxType::class, [
'mapped' => false,
'required' => false,
'attr' => [
'placeholder' => 'web.security.login.rememberme',
],
'label' => 'web.security.login.rememberme'
])
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => LoginDTO::class,
'csrf_protection' => false
]);
}
}