<?php

namespace OfficeBrain\Bundle\UserBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Validator\Constraints as Assert;

class ResetPasswordType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $constraints = array(
                'password' => array(
                        new Assert\NotBlank(array('message' => 'user.reset_password.password.not_blank')),
                		new Assert\Length(array('min'=>8, 'minMessage'=>'user.password.min','max'=>25, 'maxMessage'=>'user.password.max')),
                		new Assert\Regex(array('pattern'=>'/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*\W)(?!.* ).{8,25}$/', 'message'=>'user.password.invalid')),
                ));

        $builder->add('password', 'repeated', array(
                    'type' => 'password',
                    'constraints'=>$constraints['password'],
                    'invalid_message' => 'user.reset_password.password.mismatch'
            )
        );
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'officebrain_bundle_userbundle_reset_password';
    }
}
