¿Cómo deshabilitar el correo para usuarios en preparación?

Continuando la discusión de Descripción de varios estados de usuario en Discourse (Admin / Moderador / Personal / Desarrollador / Otro):

Tengo un foro que incluye una importación de Google Groups. Por razones, la intención es que esto sea un archivo estático del grupo de Google. El grupo de Google seguirá funcionando de forma independiente y el foro simplemente incluirá sus publicaciones como datos archivados estáticos. Ahora mismo, lo estoy haciendo ejecutando periódicamente el script de importación de Google, pero creo que pronto configuraré el correo entrante y suscribiré la categoría a la lista del grupo de Google.

He desactivado enabled staged users. Todos los usuarios aparecen como active=false y staged=true.

Si alguien responde a una publicación, reciben un correo electrónico.

Si alguien les envía un mensaje privado (PM), reciben un correo electrónico.

Si cambio el estado staged del usuario a false, ya no reciben mensajes privados, pero sí siguen recibiendo notificaciones sobre respuestas a sus mensajes. Esto parece un comportamiento adecuado, y exactamente lo que alguien más preguntaba hoy mismo, pero esta entidad cree que no tienen permiso para enviar correos electrónicos a estos usuarios de Google Groups que no han creado una cuenta en el foro.

¿Quizás pueda modificar el script de importación y/o crear un plugin que haga algo como establecer automáticamente todos los usuarios con active=false a staged=false? ¿O quizás configuro la categoría de archivo para que no pueda ser observada (en un plugin, supongo)?

Por el registro, así es como se supone que deben tratarse los usuarios staged:

2 Me gusta

Continuando la discusión de ¿Cómo deshabilitar el correo para usuarios en etapa de prueba?:

Bueno, no logré encontrar una forma de evitar que los usuarios en etapa de prueba reciban correos electrónicos, así que supongo que haré lo siguiente:

def no_mail_for_staged_users
  staged=User.where(staged: true)
  staged.all.each do |user|
    o=UserOption.find_by(user_id: user.id)
    o.email_level = 2
    o.email_messages_level = 2
    o.email_digests = false
    o.save
  end
end

y modificaré el script mbox para deshabilitar de manera similar el correo electrónico para los usuarios en etapa de prueba que cree.

Si alguien tiene mejores ideas, me gustaría escucharlas.

¿Estás en la última versión? Hubo un error relacionado con los usuarios en etapa que recibieron un correo electrónico, el cual corregimos hace una o dos semanas.

2 Me gusta

Eso sería bueno. Revisaré el lunes y veré cómo deshacer los cambios en la opción de usuario.

1 me gusta

¿Hay un plugin para esto?

Este es un tema muy antiguo y lo que estaba haciendo cuando escribí esto ya no es posible.

Parece que añadí esa función al script que importaba a los usuarios. Si eso es algo que quieres que suceda por alguna razón, entonces probablemente necesites un plugin para hacerlo. Describe qué está sucediendo que está creando los usuarios en espera que no quieres que reciban correo electrónico; probablemente necesitarás actualizar lo que sea que esté haciendo eso para ejecutar un script como el que incluí. Si necesitas un plugin personalizado para hacer eso, puedes publicar en Marketplace o contactarme directamente.

1 me gusta