Я хочу добавить ограничение на пароль в моем проекте Symfony2.8. Первое ограничение, которое я пытаюсь создать, - это минимальная длина пароля.
На данный момент я реализовал только функцию сброса пароля с почтой для утерянного пароля.
Итак, я создал файл validation.xml в MyUsersBundle/Resources/config.
<constraint-mapping xmlns = "http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<!--
! Password Constraint
!-->
<class name = "FOS\UserBundle\Form\Model\ChangePassword">
<property name = "plainPassword">
<constraint name = "Length">
<option name = "min">8</option>
<option name = "minMessage">fos_user.new_password.short</option>
<option name = "groups">
<value>MyChangePassword</value>
</option>
</constraint>
</property>
</class>
</constraint-mapping>
И чтобы сделать его активным, я модифицировал config.yml и добавил
fos_user:
...
change_password:
form:
validation_groups: [MyChangePassword, Default]
Однако, когда я пытаюсь изменить свой пароль через ссылку для сброса, даже если он не соблюдает ограничение, он меняет мой пароль.
Вы знаете, что я сделал не так? В config.yml я тоже пытался сделать то же самое с resetting вместо change_password.






Я наконец нашел в чем и где проблемы.
Сначала в config.yml правая строка была resetting, а не change_password, поскольку я использую функцию сброса пароля.
#var/www/MyProject/app/config/config.yml
fos_user:
...
resetting:
form:
validation_groups: [MyChangePassword, Default]
Другая ошибка была связана с именем класса в MyUsersBundle/Resources/config/validation.xml. Мне не нужно было использовать FOS\UserBundle\Model\User вместо FOS\UserBundle\Form\Model\ChangePassword.
#/MyProject/src/MyUsersBundle/Resources/config/validation.xml
<constraint-mapping xmlns = "http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<!--
! Password Constraint
!-->
<class name = "FOS\UserBundle\Model\User">
<property name = "plainPassword">
<constraint name = "Length">
<option name = "min">8</option>
<option name = "minMessage">fos_user.new_password.short</option>
<option name = "groups">
<value>MyChangePassword</value>
</option>
</constraint>
</property>
</class>
</constraint-mapping>