添加对重置密码的约束
Add constraint on resetting password
我想在我的 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="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]
然而,当我尝试通过重置 link 更改我的密码时,即使它不遵守约束,它也会更改我的密码。
你知道我做错了什么吗?在 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
中的 class 名称。我不需要使用 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>
我想在我的 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="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]
然而,当我尝试通过重置 link 更改我的密码时,即使它不遵守约束,它也会更改我的密码。
你知道我做错了什么吗?在 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
中的 class 名称。我不需要使用 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>