2010-05-03 3 views
0

Voici mon scénario: Je crée une page de changement de mot de passe. le champ réel qui détient le mot de passe est user.passwordValider les champs composés dans CakePHP?

Sur le mot de passe Créer, je 3 fait des champs: $ form-> entrée (« User.old_passwd »); $ form-> input ('User.new_passwd'); $ form-> input ('User.confirm_new_passwd');

Comment puis-je les valider avec les règles:

  • ancien mot de passe doit correspondre user.password
  • new_passwd et confirmnew_passwd doit être égale

Y at-il de meilleures solutions? Je suis ouvert aux suggestions. Merci!

Répondre

1

Le composant d'authentification intégré n'offre pas cette fonctionnalité. Je spécifierais les règles de validation pour vos champs "maquillés" dans la propriété validate du modèle et écris mes propres méthodes de validation, par exemple: correctPassword() pour m'assurer que les utilisateurs entrent leur ancien mot de passe et matchingPasswords() pour m'assurer que le nouveau mot de passe était re -typé correctement. Pour plus d'informations sur le custom validation rules, consultez le livre de recettes.

+0

Comment la méthode correctPassword ($ check) doit-elle être définie? Je veux dire, afin de vérifier un mot de passe du modèle, vous devez spécifier l'identifiant de l'utilisateur à rechercher. Puisque vous ne pouvez pas passer un paramètre id dans les règles de validation, comment cela peut-il être fait? – linkyndy

+0

Si je me souviens bien, j'avais un élément de formulaire caché avec l'ID de l'utilisateur accessible via $ this-> data. – Mike

+0

Oh, je veux dire oui, quand vous faites l'action edit, cake définit une entrée cachée avec l'identifiant de l'enregistrement que vous éditez pour que la méthode save() mette à jour un champ, et n'en rajoute pas un nouveau. J'ai oublié celui-ci, merci! – linkyndy

Questions connexes