添加重置密码的约束



我想在我的Symfony2.8项目上添加密码约束。我尝试创建的第一个约束是密码的最小长度。

目前,我只实现了邮件重置密码功能,以查找丢失密码。

所以我所做的是在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="FOSUserBundleFormModelChangePassword">
<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中的类名。我不需要使用FOSUserBundleModelUser代替FOSUserBundleFormModelChangePassword.

#/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="FOSUserBundleModelUser">
<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>

最新更新