Tengo un controlador personalizado que maneja la edición de contraseñas de usuario basadas en el código here.Idear no validar contraseña/contraseña de confirmación
usuario Modelo
attr_accessible :password, :password_confirmation, :username, :login
...
devise :database_authenticatable,
:lockable,
:registerable,
:recoverable,
:rememberable,
:trackable
PasswordsController
expose(:user) { current_user }
def update
if user.update_with_password(params[:user])
sign_in(user, :bypass => true)
flash[:notice] = "success"
else
render :edit
end
end
Mi formulario de edición de contraseña se encuentra here.
El problema es que no importa lo que ingrese (o no escriba para el caso) en el formulario de edición de contraseña, se muestra el método flash "éxito".
¿Funciona todo cómo debería? si el campo de confirmación no coincide o current_password está equivocado, ¿no cambia la contraseña? – Dex
Todavía lo cambia a lo que está en: contraseña independientemente de qué (si hay algo) está en: contraseña_confirmación. –
qué sucede si cambia la instrucción if a 'si params [: usuario] [: contraseña] == params [: usuario] [: contraseña_confirmación]' y coloca 'user.update_with_password (params [: user])' en el cuerpo ? –