HasEditablePassword extends has_secure_password with updating capabilities. On password update, the old password or a recovery token is asked.