Ich füge meiner Rails-Anwendung, die Authlogic verwendet, eine Funktion zum Zurücksetzen des Kennworts hinzu. Ich folgte dem Leitfaden hier: http://www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic/ und alles funktioniert wie ich möchte, mit einer Ausnahme: das Passwort-Reset-Formular akzeptiert leere Passwörter und ändert sie einfach nicht.Erzwinge die Validierung leerer Passwörter in Authlogic
Ich habe herumgesucht und habe gelernt, dass dies das beabsichtigte Standardverhalten ist, weil es Ihnen ermöglicht, Benutzerformulare zu erstellen, die nur das Passwort des Benutzers ändern, wenn sie ein neues eingeben und es sonst ignorieren. Aber in diesem Fall möchte ich insbesondere die Validierung des Passworts erzwingen, wie wenn ein Benutzer sich anfänglich registriert. Ich habe zwei mögliche Lösungen für dieses Problem gefunden, bin aber nicht in der Lage gewesen, herauszufinden, wie man beide implementiert.
1) Jemand fragte dieselbe Frage auf Google Groups:
User model saves with blank password
Ben Antwort @user.validate_password = true
zu verwenden war die Validierung des Passworts zu erzwingen. Ich habe das versucht, aber ich bekomme einen undefinierten Methodenfehler: undefined method 'validate_password_field=' for #<User>
.
2) Es scheint eine Authlogic Konfigurationsoption namens ignore_blank_passwords
zu geben. Es wird hier dokumentiert:
Module: Authlogic::ActsAsAuthentic::Password::Config#ignore_blank_passwords
Das sieht aus wie es funktionieren würde, aber mein Verständnis ist, dass dies eine globale Konfigurationsoption, die Sie in Ihrem ersten acts_as_authentic
Aufruf im User-Modell verwenden, und ich weiß nicht Ich möchte es anwendungsweit ändern, da ich ein normales Bearbeitungsformular für Benutzer habe, bei denen leere Kennwörter standardmäßig ignoriert werden sollen.
Wer hat eine Lösung gefunden? Ich sehe validate_password=
im Änderungsprotokoll für Authlogic 1.4.1 und nichts davon wurde seitdem entfernt. Benutze ich es einfach falsch? Gibt es eine Möglichkeit, ignore_blank_passwords
pro Anfrage zu verwenden?
Ich konnte das Attribut 'ignore_blank_paswords' verwenden. Sehen Sie sich meine Antwort für Details an. –