¿Cómo hacer un "ignore mutuo"?

Edición: Pensé que era listo, pero no lo era. Véase el siguiente mensaje.

Hola, solo quería compartir algo que descubrí… Estoy usando Discourse como foro en un sitio de miembros existente, y en mi sitio actual, los miembros pueden bloquearse entre sí. Cuando el usuario A bloquea al usuario B, ambos usuarios A y B no pueden verse ni interactuar, etc.

Necesitaba que esta misma funcionalidad se trasladara a Discourse. He estado dándole vueltas a la cabeza para averiguar cómo hacerlo y creo que finalmente lo he resuelto:

  1. Configuré un webhook de Discourse para recibir eventos, de modo que pueda capturar el evento user_logged_in.

  2. Cuando un usuario inicia sesión, recorro su lista de ‘bloqueo’ en mi sitio.

  3. Para cada otro miembro que intentan bloquear, uso la API de Discourse (tenga en cuenta que esto no tiene nada que ver con SSO) para “Ignorar” al otro usuario.

  4. Y aquí está la parte inteligente: también le indico a Discourse que el otro usuario ignore al usuario principal que está iniciando sesión. En otras palabras, tanto el Usuario A (que está iniciando sesión ahora) como el Usuario B (que está en la lista de bloqueo del Usuario A) se “Ignoran” mutuamente.

  5. Tenga en cuenta que cuando envío el mensaje de “Ignorar”, en realidad debo verificar que tengan al menos nivel TL2, ya que “Ignorar” es una función exclusiva de TL2; si no lo son, debo actualizarlos rápidamente a TL2 antes de poder completar la acción de “Ignorar”. La actualización de un usuario a TL2 provoca otros efectos secundarios (inicio del script avanzado de discobot, otorgamiento de insignias) con los que tuve que lidiar.

Ah, y oculto la lista de “Ignorados” en el perfil de usuario de Discourse (solo con CSS simple), ya que hay una interfaz en el sitio principal para gestionar los usuarios bloqueados. No quiero que mis miembros de Discourse vean la lista de ignorados de Discourse en absoluto.

Espero que esto ayude a otras personas que necesiten este tipo de funcionalidad…

2 Me gusta

Así es el problema. La función “Ignorar” en Discourse no oculta completamente a la otra persona. Hace que sus mensajes sean invisibles (y realmente lo hace de manera excelente)… y los reemplaza con un enlace que dice ‘VER x MENSAJES OCULTOS’… esto es algo que puedo ocultar fácilmente con CSS, así que no es gran cosa.

¡PERO! Si alguien ha citado a un usuario bloqueado, aún puedes ver su avatar y nombre (pero no el contenido de la cita) en el mensaje, y también sigues viendo su avatar y nombre en los indicadores de respuesta a mensajes. Mierda.

Esto significa que si el Usuario A bloquea al Usuario B en mi sitio… y yo aplico el truco de la doble ignorancia (ignorar en ambas direcciones) como describí en mi mensaje anterior… entonces el Usuario B (que nunca bloqueó al Usuario A) de repente verá cosas extrañas donde el Usuario A está publicando en el foro. Y podrá darse cuenta de que el Usuario A lo ha bloqueado. Así que ahora se revela información privada (a quién ha bloqueado el Usuario A) al Usuario B. Lo cual en mi sitio no es bueno… en absoluto.

Ughhhh

Así que supongo que he llegado al punto en el que probablemente necesite aprender RoR finalmente :wink: y escribir un plugin que extienda la funcionalidad existente de “Ignorar” para borrar, de verdad, todos los rastros de un usuario en una lista de ‘Ignorados’. Entonces podré volver a mi idea del doble bloqueo…

1 me gusta

Correcto, la función de ignorar de Discourse no es realmente una función de bloqueo completa (por eso no la llamamos «bloquear»). Es más para los casos en los que alguien podría no estar violando las directrices de la comunidad, pero simplemente es un poco una molestia para ti.

La solicitud de una función de bloqueo completa ha surgido antes, pero generalmente la hemos abordado de la siguiente manera:

8 Me gusta

Hola Kris, gracias por esta respuesta.

Bueno, advertencia: va a seguir un pequeño desahogo defensivo, no dirigido tanto a ti como a todas las personas que me han dicho que no necesito el bloqueo… :wink:

He hecho gestión comunitaria práctica durante una eternidad (incluso cuando trabajaba para AOL, CompuServe y GEnie, haciendo trabajo comunitario en sus tableros de mensajes y salas de chat). Ahora gestiono mi propio sitio comunitario. Los foros son parte del sitio y es donde interactúa mucha (aunque no toda) la comunidad de mi sitio.

Entiendo totalmente y por completo las razones por las que el bloqueo no es ideal… Lo entiendo. De verdad. Leí cada mensaje que pude encontrar aquí en meta.discourse. Vi a las personas suplicando por «Ignorar», vi los debates de ida y vuelta sobre por qué no es una gran cosa, y vi cuando ustedes finalmente cedieron y lo añadieron al software. :wink:

En todo esto, creo que algunas personas olvidaron que no todo el mundo gestiona un sitio que sea solo Discourse/solo una comunidad basada en foros.

En mi situación actual, ya tenía una comunidad sólida en mi sitio antes de que llegara Discourse: no solo en mis foros anteriores (con su software antiguo y terrible), sino también con la función de sala de chat de mi sitio (que tiene sus habituales y su propia comunidad que se superpone a la de mis foros), así como otras funciones centradas en la comunidad en mi sitio web.

Y para bien o para mal, mi sitio siempre ha ofrecido la posibilidad de hacer un «bloqueo completo» de otro miembro. En parte debido a problemas comunitarios, y en parte porque la comunidad a la que sirvo espera que sea MUY sensible a su privacidad por varias razones, incluidas preocupaciones legales (en serio).

Hacerse la pregunta «¿es una buena idea el bloqueo?» no es la pregunta correcta que debo hacer en este momento. Aunque personalmente no me encanta la idea del bloqueo, ese barco ya zarpó. :wink:

(Un poco más de contexto: mis antiguos foros eran bastante tóxicos debido a decisiones tomadas por el propietario anterior del sitio. Parte de la razón por la que la gente exigía un bloqueo bidireccional fue por la basura en los foros. Como parte de mi actualización a Discourse y del lanzamiento de foros totalmente nuevos, también estoy trabajando en ayudar a reparar la comunidad del foro dañada).

De nuevo, para ser crystal claro, entiendo perfectamente por qué el bloqueo generalmente no es una buena señal de una comunidad saludable. De hecho, estoy trabajando para intentar que mis miembros, que antes eran muy dados al bloqueo, se relajen un poco.

Así que.

Si estuviera comenzando una comunidad totalmente nueva, definitivamente empezaría con Discourse y no necesitaría un bloqueo bidireccional.

Si tuviera un sitio que ya no tuviera disponible el bloqueo bidireccional (o si no estuviera actualizando desde un software de foros que anteriormente soportaba el bloqueo bidireccional), no necesitaría el bloqueo bidireccional en Discourse.

Si mi comunidad actual de foros no estuviera ya dañada, no necesitaría el bloqueo bidireccional. Pero han tenido algunas experiencias terribles en el pasado que han exigido la función de bloqueo, la cual tuve que implementar. Ahora, el cambio a Discourse es un gran cambio que ya está agitando la comunidad (es muy diferente a lo que tenía, así que es un proceso), y no es el momento adecuado para decir también «oh, y por cierto, vamos a eliminar el bloqueo». Tendré una revuelta en las manos.

En fin. Disculpa la longitud de esta respuesta y espero no sonar demasiado defensivo. :wink: Solo no quiero caer en un debate filosófico sobre el bloqueo y por qué no es una cosa saludable.

Sigo necesitando una función de bloqueo completo.

Agradezco sinceramente y de verdad todos los comentarios y la ayuda. Y parte de la razón por la que estoy publicando todo esto (y tomando el tiempo de escribir este mensaje tan larguísimo) es porque estoy tratando de devolver algo a la comunidad de Discourse.

Déjame terminar con esto: Sé que Discourse no ofrece exactamente lo que estoy pidiendo en este momento. ¡Pero está cerca! No estoy tratando de convencer al equipo de Discourse de que lo añada al software (esa conversación comenzó y terminó en gran medida mucho antes de que yo llegara)… pero estoy tratando de lograr mi objetivo con las piezas que tengo frente a mí… y pidiendo ayuda a los pensadores inteligentes, ingeniosos y creativos y a los programadores que he visto por aquí… y compartiendo lo que descubra en el camino con los demás.

5 Me gusta

Estoy de acuerdo con muchos de tus puntos, pero solo quiero comentar esto…

No tener una función de bloqueo automatizado está bien en foros pequeños o medianos, pero, en mi opinión, es indispensable para plataformas grandes.

Esto se debe, entre otras cosas, a que más miembros significan más publicaciones, lo que potencialmente genera muchos más conflictos interpersonales. Mientras que un equipo de 10 moderadores podría gestionar fácilmente foros con 10.000, 20.000 o 30.000 miembros, a medida que la base de usuarios crece, todo lo demás crece a un ritmo mayor: más voces → muchas más publicaciones → muchos más problemas.

Esta es una de las razones principales por las que todas las grandes redes sociales ofrecen la función de bloqueo. Otra razón es de orden legal: si alguien denuncia que está siendo acosado por otro miembro y el sitio no hace nada al respecto (quizás porque consideran que no hay acoso real, que “todo está en su mente”), y luego ese usuario se suicida, el sitio podría ser responsable. Si alguien siente genuinamente que está siendo acosado, entonces así es como se siente; no importa lo que tú o yo pensemos. Lo que importa es que tenemos el deber de proteger a los miembros, y una de las mejores formas de evitar que se sientan así es cortar esa interacción, lo cual se logra mejor permitiendo que ellos mismos bloqueen a quienes les causan angustia (o, en ocasiones, imponiéndolo nosotros).

Los días en los que éramos juez y jurado han pasado desde hace mucho tiempo, y tampoco deberíamos tener que serlo. No nos corresponde a nosotros decidir qué causa o no angustia a los demás.

De hecho, por eso creo que también necesitamos herramientas de moderación más modernas: los moderadores no deberían verse obligados a editar las publicaciones de los usuarios (lo que la mayoría suele percibir como censura). Si una publicación es inaceptable, deberíamos poder simplemente ocultarla y pedir al usuario que la edite, colocando las ediciones en una cola de revisión.

Creo (¡y espero!) que Discourse puede liderar en este aspecto.

2 Me gusta

Muy bien dicho. (Y esto no es necesariamente hipotético: en mi comunidad en particular, en el pasado hemos tenido que involucrar a las fuerzas del orden.) Pensar en situaciones como esta y brindar a los miembros las herramientas para gestionarse a sí mismos es fundamental… y yo argumentaría que es fundamental para cualquier persona que administre un buen sitio de comunidad.

Estoy de acuerdo, una opción como esa ayudaría enormemente. En general, nunca editaremos el mensaje de otra persona en mi foro… por estas mismas razones… nuestros miembros serían extremadamente sensibles a que juguemos con sus palabras. En este momento, las únicas opciones que tenemos con Discourse para manejar contenido problemático son (a) eliminar el mensaje o (b) no eliminar el mensaje. Es un poco brusco y “cuando solo tienes un martillo, todo parece un clavo”. :hammer: :grin: (También entiendo que esta conversación sobre herramientas de moderación futuras probablemente sea mejor para otro tema…)

2 Me gusta

Esa es una buena idea. Me gusta cómo eso devuelve la responsabilidad al autor del mensaje.

2 Me gusta

Esto es lo que se nos está presionando a hacer, pero la razón por la que debemos editar la publicación o eliminarla (lo cual no es ideal por muchas otras razones) es que, si la publicación es denigrante o menos amable de lo que nos gustaría hacia otro miembro, es mejor retirarla antes de que el otro miembro la vea. Una vez que lo haga, se cierra la ventana de oportunidad para evitar que surjan problemas interpersonales y comienza un espiral descendente. Esto, con el tiempo, afecta mucho más que solo a los dos miembros involucrados.

…y quita mucha presión al equipo de moderación :smiley:

2 Me gusta

Intenta marcar un mensaje como “Inapropiado” pero usa el botón “Tomar acción” en lugar de “Marcar mensaje”. El mensaje se ocultará y el usuario tendrá la oportunidad de editarlo para hacerlo más aceptable, tras lo cual el mensaje se mostrará automáticamente.

Lo único que falta aquí es generar un elemento de revisión para la edición.

5 Me gusta

Sí, creo que el sistema de banderas sería excelente para esto. Además de lo mencionado anteriormente, sería ideal incluir también “cambios recomendados” o algún tipo de mensaje que se pueda enviar al usuario (quizás obligatorio si la bandera fue enviada por un moderador o cuando se procesa en la cola de revisión).

No, eso no va a suceder. Si el bloqueo hardcore* (que, por cierto, nunca ha sido una función del software de foros) es un requisito inamovible, deberías cambiar a otro software libre de código abierto. ¡Lo siento!

Dicho esto, creo que un sistema de ignorancia mutua basado en API es un buen truco por ahora.

  • bloqueo, que significa “además, esta persona ya no podrá ver mis publicaciones”, además de “ya no quiero ver las publicaciones de esta persona”.
4 Me gusta

Un efecto secundario divertido de mi truco de “ignorar mutuamente” es que ahora recibo MUCHOS de estos correos electrónicos. ¡Como, docenas! ¿Hay alguna manera de suprimirlos? Lamento verlos irse (creo que son muy útiles para detectar posibles problemas en la comunidad), pero como tengo que apropiarme de la función “Ignorar” para que mis bloqueos funcionen, estas notas se convierten en un efecto secundario no deseado.

¿Ya revisaste la configuración de tu sitio para ver si hay un número umbral que puedas editar? Eso es lo primero que haría.

He leído parte de esto, pero es un poco más allá de mi comprensión:

¿Existe una forma de que el administrador de un sitio configure el sistema para que, si el Usuario A ignora al Usuario B, entonces el Usuario B sea ignorado y ya no tenga acceso a las publicaciones del Usuario A?

Gracias de antemano. Estoy investigando para transmitir esta información al administrador.

¡Larry!

No, no puedes bloquear completamente a alguien en Discourse… la acción más extrema que puede tomar un usuario normal es ignorar (una persona ignorada puede ver tu contenido, pero tú no puedes ver el suyo).

@awesomerobot ¿Puede el administrador bloquear a alguien del sitio o de partes de él?

oh definitivamente, no podríamos detener a los spammers sin eso: los administradores pueden banear a los usuarios e incluso su dirección IP en caso de que comiencen a crear más cuentas

Tengo que intervenir aquí, porque he visto cómo esto ha afectado a nuestro propio foro de Discourse, muy diverso.

El doble bloqueo forzado es una idea terrible, terrible y está imponiendo la voluntad del foro sobre el individuo vulnerable que intentas proteger. En esencia, estás diciendo: “Entiendo que te sientes inseguro e incómodo con este usuario, pero no podemos simplemente permitirte ocultar sus publicaciones; vamos a hacer que el hecho de que hayas hecho esto sea descubrible, por lo que ahora ese usuario podría tener otra razón para explotar y atacarte”.

Se requirió un esfuerzo concertado por parte de muchos miembros de Twitter que se identifican públicamente como mujeres para que Twitter entendiera por qué esta era una idea terrible y permitiera su capacidad de “silenciar”: eliminar a un usuario de tus vistas y línea de tiempo sin alertarlos del hecho de que lo has hecho.

Esto es cierto en el mundo real, donde el mero acto de obtener una orden de protección contra un acosador puede resultar en violencia, ya que los acosadores son más propensos a violar las órdenes una vez otorgadas.

Por esta razón sola, si esta es una función en Discourse en absoluto, debe ser elegida por el solicitante, no por la voluntad del moderador o del sitio.

Diría que si un usuario solicita que alguien sea bloqueado, y el sitio informa al usuario de que ha sido bloqueado por el usuario X sin su consentimiento, y el usuario bloqueado escala la situación, ese es un caso real de responsabilidad desde la perspectiva del sitio también, pero más allá de eso, tendrá indudablemente un efecto paralizante en las personas que utilizan la función de bloqueo en absoluto (lo cual he visto por experiencia personal), y también transfiere el poder al agresor: “¡No puedes bloquearme porque lo sabré!”.

Tengo que estar absolutamente de acuerdo aquí. Esto o nunca debe ser una función de Discourse o debe ser opcional solo por el solicitante y debe quedar claro cuáles son los riesgos muy reales de escalada aquí.

Muchas personas se molestan mucho cuando tienen una publicación eliminada, se sienten “censuradas” o “canceladas”, o se les impone una dinámica de poder que no les gusta. Pero no te equivoques, llámalo como quieras, pero la moderación es censura, y conlleva un requisito inherente de mantener a tus miembros a salvo de represalias como resultado, por la misma razón que las solicitudes de moderación deben permanecer anónimas.

4 Me gusta

Suena a que el problema fue cómo lo implementaste.

Cuando nos acercamos a los miembros, generalmente lo hacemos desde la perspectiva del administrador, por ejemplo: “Se ha hecho evidente que tu relación con UserX ha llegado a un punto irrecuperable, por lo que creemos que es lo mejor para todos los involucrados que ambos se ignoren de ahora en adelante…”

Nunca hemos tenido que emitir un bloqueo por acoso sin que la animosidad ya hubiera salido a la luz; de ahí que lo anterior sea mucho más fácil para nosotros.

No, no se trata del enfoque: ‘Este usuario me hace sentir inseguro o incómodo y me gustaría no ver sus mensajes’ es una solicitud totalmente válida, y no tiene nada que ver con si los moderadores están de acuerdo o no.

Empoderar a los usuarios para que tengan control sobre lo que consumen es un objetivo noble, independientemente de lo que nosotros, como operadores del foro, prefiramos.

Porque la alternativa es que el usuario abandone la comunidad y se pierdan sus contribuciones. No deberían tener que ‘soportar’ la microgestión del sitio respecto a tener que volver a bloquear o notificar al usuario que está siendo ignorado. O, si por otras razones eso debe ser una opción, debe ser optativa.

Hacer lo contrario es negar la autonomía de un usuario que ha expresado preocupación por otro. Son sus ojos. Tienen derecho a controlar lo que entra en ellos y quién sabe sobre sus decisiones.

3 Me gusta