Additional email address per user account support

Hice lo siguiente:

./launcher enter app
rails c
UserEmail.where(user_id: 7, primary: false).destroy_all
UserEmail.create!(user: User.find_by_username("user7"), email: "newemail@example.com")
exit
exit
./launcher restart app

No sé si eso fue lo que hice mal, pero esta vez solo ejecuté la línea de eliminación. Reinicié la aplicación, actualicé la página web y el correo secundario desapareció. Así que procedí a hacer el resto desde la interfaz web y cambié el correo secundario a principal, ya que ya no estaba bloqueado.

Me retracto: cambiar el correo electrónico a través de la web envía una confirmación al correo válido, pero conserva el correo inválido una vez que regresas a la página de preferencias del usuario o a la página de administración de usuarios.
Ahora no estoy seguro de qué hacer :frowning:

EDIT:

A riesgo de saturar este hilo, logré resolverlo.

Una vez en rails c:
Eliminé todos los correos electrónicos. Simplemente no sabía cómo establecer un correo como principal; por eso, cada vez que volvía a agregar el correo válido, se añadía como secundario.

# Eliminar todos los correos secundarios
UserEmail.where(user_id: 1234, primary: false).destroy_all
# Eliminar el correo principal
UserEmail.where(user_id: 1234, primary: true).destroy_all

# Establecer el correo principal
UserEmail.create!(user_id: 1234, email: "validemail@example.com", primary: true)

Esto es obvio, omite la validación, pero ya la has realizado manualmente al fusionar la cuenta previamente, así que espero que otros puedan usar este ejemplo. Lo único que falta es enviar el correo de restablecimiento de contraseña una vez que hayas reiniciado la aplicación.

5 Me gusta