2017-07-03 82 views
2

我已将密码强度添加到我的用户密码。密码强度无法重置密码Symfony

/** 
* @Assert\Regex(
* pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/", 
* message="Uw wachtwoord moet zeven tekens of langer zijn, minimaal één getal bevatten, een hoofletter en een kleine letter. " 
*) 
*/ 
protected $plainPassword; 

这工作正常,但如果用户想要重置其密码,这些密码强度规则不适用。

如何将密码强度添加到重置密码表单中?

+0

您正在使用fosuserbundle? – ahmedbhs

+0

是的,我似乎它仍然使用默认的FOSUserBundle密码强度值 –

+0

你谈论改变密码或通过邮件重新排序,你可以给我的网址! – ahmedbhs

回答

2
// vendor/friendsofsymfony/user-bundle/Ressources/config/validation.xml 
    <property name="plainPassword"> 
     <constraint name="NotBlank"> 
      <option name="message">fos_user.password.blank</option> 
      <option name="groups"> 
       <value>Registration</value> 
       <value>ResetPassword</value> 
       <value>ChangePassword</value> 
      </option> 
     </constraint> 
     <constraint name="Length"> 
      <option name="min">2</option> 
      <option name="max">4096</option> 
      <option name="minMessage">fos_user.password.short</option> 
      <option name="groups"> 
       <value>Registration</value> 
       <value>Profile</value> 
       <value>ResetPassword</value> 
       <value>ChangePassword</value> 
      </option> 
     </constraint> 
    </property> 

上面只是从fosuserbundle复制粘贴。正如你所看到的,fosuserbundle添加了组ResetPassword。试试这也使

/** 
* @Assert\Regex(
* pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/", 
* message="Uw wachtwoord moet zeven tekens of langer zijn, minimaal één getal bevatten, een hoofletter en een kleine letter. ", 
* groups = { "ResetPassword"} 
*) 
*/ 
protected $plainPassword; 

更新

所有你需要做的就是行

* groups = { "ResetPassword"} 

添加到$ plainPassword注解。

+0

我已添加您在AppBundle/Resources/config/validation.xml中发布的代码 但是,我收到以下错误: [错误1845]元素的属性:没有匹配的全局声明可用于验证根。 (in/sites/zioo/www/web/- 第1行第0列) 这是因为我使用了yml吗?我不确定。 –

+0

@MarcoKoopman你只需要在你的注释中添加验证组 – lordrhodos

+0

不确定你是什么意思,如果它是因为你使用yml而引起的。你必须添加的唯一东西是注释部分* groups = {“ResetPassword”} –

0

两个

/** 
* @Assert\Regex(
* pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/", 
* message="Uw wachtwoord moet zeven tekens of langer zijn, minimaal één getal bevatten, een hoofletter en een kleine letter. " 
*) 
*/ 
protected $plainPassword; 

而且

<property name="plainPassword"> 
    <constraint name="NotBlank"> 
     <option name="message">fos_user.password.blank</option> 
     <option name="groups"> 
      <value>Registration</value> 
      <value>ResetPassword</value> 
      <value>ChangePassword</value> 
     </option> 
    </constraint> 
    <constraint name="Length"> 
     <option name="min">2</option> 
     <option name="max">4096</option> 
     <option name="minMessage">fos_user.password.short</option> 
     <option name="groups"> 
      <value>Registration</value> 
      <value>Profile</value> 
      <value>ResetPassword</value> 
      <value>ChangePassword</value> 
     </option> 
    </constraint> 
</property> 

威尔的工作。错误来自我很久以前做出的验证器文件。这个验证器有一个错误,这个错误是这个选项无效的原因。

通过添加“* groups = {”registration“}”我修复了错误。

如果你跟我一样检查同样的错误检查你的验证文件的错误并修复它们。