El nuevo registro con correo electrónico antiguo que incluye + no funciona en la API REST

Parece que en una actualización reciente, el nuevo registro con el mismo correo electrónico, incluido un + para representar un nuevo correo electrónico, no está permitido. Mi sistema depende en gran medida de ello. ¿Cómo puedo habilitarlo de nuevo?

Por ejemplo, si ya me he registrado con correo@gmail.com, no puedo registrarme con correo+1@gmail.com

Por cierto, estoy probando esto con la API REST

Además, no tengo esta opción marcada:

Creo que esa es la configuración de administrador normalizar correos electrónicos: :+1:

Editar: No vi esa edición antes de publicar. :slight_smile:

1 me gusta

sí, ya está deshabilitado para mí

1 me gusta

No puedo duplicar esto en try.discourse.org.

¿Puedes registrarte desde la interfaz de usuario normal con este correo electrónico?

Además, ¿puedes verificar si el correo electrónico +1 no se utilizó ya para un registro?

1 me gusta

Sí, la interfaz de usuario normal está bien. La API REST no está bien.

Hice exactamente lo mismo y no pude duplicar el problema en el código más reciente que se ejecuta en vivo; se comportó como se esperaba con la configuración normalize emails desactivada:

¿Puedes mostrar la salida de esto desde la consola de Rails?:

[1] pry(main)> SiteSetting.normalize_emails

[2] pry(main)> User.find_by_email('TU NOMBREDEUSUARIO@gmail.com').username

[3] pry(main)> User.find_by_email('TU NOMBREDEUSUARIO+1@gmail.com').username

Además, ¿en qué versión de Discourse te encuentras?

También podría verificar que estás accediendo a tu sitio de producción y no al de prueba (o viceversa).

2 Me gusta

Me acabo de actualizar

aquí está

¿A qué se traducen estos?

(¿y puedes copiarlos/pegarlos aquí?)

Debería haber preguntado esto primero :man_facepalming:

“El correo electrónico principal no está permitido.”
es una traducción para user.email.blocked

Mmm…
Parece que el correo electrónico normalizado está bloqueado. :thinking:
Quiero decir, si email@gmail.com está bloqueado, entonces email+1@gmail.com también está bloqueado. Me parece raro cuando no tengo seleccionada la opción de correo electrónico normalizado.

Por eso debería haber preguntado primero en lugar de asumir que “ya estaba ocupado” :rofl:

¿Cuáles son tus configuraciones anuladas en las categorías de correo electrónico y usuario?

¿Has bloqueado esa dirección de correo electrónico o, por ejemplo, el dominio de Gmail?

1 me gusta

No entendí esto. ¿Dónde debería revisar?

Sí, puedo ver que el correo electrónico normalizado está bloqueado.

En este caso, casi con toda seguridad bloqueamos las subdirecciones de las direcciones bloqueadas independientemente de la configuración como medida anti-abuso, ya que la opción de normalización no es la predeterminada.

“Solo mostrar anulados” en la configuración. Pero ahora sospecho que no necesitamos preocuparnos por eso.

2 Me gusta

De vuelta en mi escritorio, eché un vistazo al código real que realiza este rechazo:

Justo en la parte superior, estamos verificando el correo electrónico canónico contra la lista de bloqueo:

  def self.canonical(email)
    name, domain = email.split("@", 2)
    name = name.gsub(/\+.*/, "")
    name = name.gsub(".", "") if %w[gmail.com googlemail.com].include?(domain.downcase)
    "#{name}@#{domain}".downcase
  end

E incluso si eso no lo hubiera detectado, habría sido detectado por la verificación de la distancia de Levenshtein aquí:

[1] pry(main)> ScreenedEmail.levenshtein('fakezabanshenas@gmail.com', 'fakezabanshenas+1@gmail.com')
=> 2

ya que el valor predeterminado para SiteSetting.levenshtein_distance_spammer_emails es 2.

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.