Los enlaces de invitación generados con correo electrónico no se pueden canjear

Estoy publicando en el punto final de la API /invites.json con el siguiente JSON:

{
    "email": "new.member@example.com",
    "skip_email": true,
    "max_redemptions_allowed": 1,
    "expires_at": << fecha actual + 1 mes >>
    "group_names": "example_group"
}

Lo cual crea una invitación válida, de la cual tomo el enlace de invitación y se lo proporciono al usuario.

Sin embargo, cuando el usuario intenta canjear la invitación, falla en discourse/app/controllers/invites_controller.rb at main · discourse/discourse · GitHub con el error genérico invite.error_message debido a que no se pudo actualizar la base de datos por alguna razón.

He estado tratando de rastrear el código, pero no veo nada obvio que destaque.

Este es un ejemplo de registro de la tabla invites:

  id  |            invite_key            |            email             | invited_by_id | user_id | redeemed_at |         created_at         |         updated_at         | deleted_at | deleted_by_id |       invalidated_at       | moderator | custom_message | emailed_status | max_redemptions_allowed | redemption_count |       expires_at
 1587 | 4b4e........................2307 | example@gmail.com            |             1 |         |             | 2021-04-11 23:51:05.253528 | 2021-04-11 23:51:05.253528 |            |               |                            | f         |                |              0 |                       1 |                0 | 2021-05-11 11:51:05.193

¿Has intentado hacerlo desde la interfaz de usuario? ¿Funciona? De ser así, ¿cuál es la diferencia entre la solicitud que realiza la interfaz de usuario y la que hiciste tú?

¿Hay algo en /logs en el sitio?

Por desgracia, no ha habido nada en los registros. No lo he probado desde la interfaz de usuario, pero lo revisaré.

Por cierto, ¿hay algún post que describa cómo aplicar un parche o ejecutar un fork en producción? Consulta mi comentario aquí: Install Discourse for development using Docker - #152 by jessicah.

@sam parece que solo afecta a algunos usuarios y no a otros, pero no he podido identificar qué es lo diferente :-/

Podría aplicar un parche que añada registros adicionales, pero según el enlace en el mensaje anterior, aunque puedo ejecutar un entorno de desarrollo, no logro que funcione en mi instancia de producción, así que realmente no sé cómo puedo depurar :frowning:

No todos los usuarios pueden invitar. ¿Estás seguro de que el usuario que realiza las invitaciones a través de la API tiene permiso para invitar?

invited_by_id es 1, es decir, admin, utilizado para todas las invitaciones.

1 me gusta

Hola Jessica,

Nuestro código de invitación ha cambiado mucho desde abril. ¿Sigues teniendo problemas aquí?

cc @dan

2 Me gusta