¿Alguien sabe una forma segura de establecer los niveles de notificación para todos los usuarios en un tema a un solo valor? Supongo que sería algo en la consola de Rails.
Quiero establecer a todos los usuarios en un tema en “Silenciar” o “Normal” en lugar de “Seguir” o “Rastrear”.
El objetivo es reducir la actividad en un tema grande en una situación de moderación compleja.
Esta situación es compleja y no quiero una indicación visual que desencadene una discusión pública al respecto que pueda consumir horas de tiempo de moderación. (Ya estoy completamente abrumado). El resultado ideal es que la gente simplemente no recuerde que el tema existe.
Deslistaría el tema. Así se oculta del foro, por lo que probablemente la mayoría de los usuarios ya no lo verán allí. Pero cuando tengan un enlace a ese tema (por ejemplo, porque recibieron una notificación), aún podrán abrirlo.
Sin embargo, solo para que lo sepas, si lo están viendo, aún recibirían notificaciones cuando no esté listado.
Creo que ahora puedes usar el endpoint /t/TOPIC_ID/notifications para establecer el nivel de notificación de un usuario en un tema específico, si esa es una opción más atractiva que la consola de Rails.
Detalles adicionales
El usuario de la API debe ser un administrador (por lo que debe tener alcance global) para poder cambiar el nivel de notificación de otro usuario.
URL del endpoint: siteurl/t/<topic_id>/notifications
Tipo de solicitud: POST
Parámetros:
username o external_id del usuario de destino. Si está vacío, se cambiará el nivel de notificación del propio administrador para el tema.
notification_level: valor entero correspondiente al nivel
muted: 0,
regular: 1,
normal: 1, # alias para regular
tracking: 2,
watching: 3,
Pero para la consola de Rails, creo que sería esto: (recuerda hacer una copia de seguridad por si acaso antes de intentar cambiar cosas en Rails )
Eso cambiaría los niveles del tema, pero puede haber niveles de categoría y etiqueta que aún puedan afectar a quién recibe una notificación de nueva actividad.
Y una pequeña consulta de explorador de datos para verificar los niveles de los usuarios en un tema si eso también es útil:
SELECT
topic_id,
user_id,
notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID