Comment faire un "mutual ignore" ?

Édito : J’ai cru être malin, mais je ne l’étais pas. Voir le message suivant.

Salut, je voulais juste partager une découverte… J’utilise Discourse comme forum sur un site de membres existant, et sur mon site actuel, les membres peuvent se bloquer mutuellement. Lorsque l’utilisateur A bloque l’utilisateur B, ni l’un ni l’autre ne peut voir l’autre, ni interagir, etc.

J’avais besoin que cette même fonctionnalité soit transférée à Discourse. Je me creusais la tête pour trouver comment faire, et je pense avoir enfin résolu le problème :

  1. J’ai configuré un webhook Discourse pour recevoir des événements, afin de pouvoir capturer l’événement user_logged_in.

  2. Lorsqu’un utilisateur se connecte, je parcours sa liste de « blocage » sur mon site.

  3. Pour chaque autre membre qu’il tente de bloquer, j’utilise l’API Discourse (notez que cela n’a rien à voir avec SSO !) pour « ignorer » cet autre utilisateur.

  4. Et voici la partie astucieuse : je demande également à Discourse de faire en sorte que l’autre utilisateur ignore l’utilisateur principal qui se connecte. Autrement dit, l’utilisateur A (qui se connecte actuellement) et l’utilisateur B (qui figure sur la liste de blocage de l’utilisateur A) s’« ignorent » mutuellement.

  5. Notez que lorsque j’envoie le message « Ignorer », je dois en fait vérifier qu’ils ont au moins le niveau TL2, car « Ignorer » est une fonctionnalité réservée au niveau TL2 — sinon, je dois rapidement les promouvoir au niveau TL2 avant de pouvoir procéder à l’« Ignorer ». La promotion d’un utilisateur au niveau TL2 entraîne d’autres effets secondaires (démarrage du script avancé de discobot, attribution de badges) que j’ai dû gérer.

Oh, et je cache la liste des « Ignorés » dans le profil utilisateur de Discourse (simplement via CSS), car il existe une interface sur le site principal pour gérer les utilisateurs bloqués. Je ne veux pas que mes membres Discourse voient la liste d’ignorance de Discourse.

J’espère que cela aidera d’autres personnes ayant besoin de ce type de fonctionnalité…

Voici donc le problème. La fonction « Ignorer » dans Discourse ne cache pas totalement l’autre personne. Elle rend leurs messages invisibles (et fait vraiment du très bon travail là-dessus)… et les remplace par un lien indiquant « VOIR x MESSAGES CACHÉS »… c’est quelque chose que je peux facilement masquer avec du CSS, donc pas de souci majeur.

MAIS ! Si quelqu’un a cité un utilisateur bloqué, vous voyez toujours leur avatar et leur nom (mais pas le contenu de la citation elle-même) dans le message, et vous voyez également leur avatar et leur nom dans les indicateurs de réponse aux messages. Mince.

Cela signifie que si l’utilisateur A bloque l’utilisateur B sur mon site… et que j’applique l’astuce du double-ignorage (ignorer dans les deux sens) comme je l’ai décrit dans mon message précédent… alors l’utilisateur B (qui n’a jamais bloqué l’utilisateur A lui-même) voit soudainement des choses étranges là où l’utilisateur A poste sur le forum. Et peut ainsi comprendre que l’utilisateur A l’a bloqué. Cela révèle donc des informations privées (qui l’utilisateur A a bloqué) à l’utilisateur B. Ce qui, sur mon site, n’est pas bon… du tout.

Ahhh

Donc je pense que j’en suis arrivé au point où je dois probablement apprendre RoR enfin :wink: et écrire un plugin qui étend la fonctionnalité existante d’« Ignorer » pour vraiment, vraiment effacer toutes les traces d’un utilisateur figurant sur une liste d’« Ignorés ». Ensuite, je pourrai revenir à mon idée de double-blocage…

Exact, la fonction d’ignorance de Discourse n’est pas vraiment une fonction de blocage complet (c’est pourquoi nous ne l’appelons pas blocage !). Elle est plutôt destinée aux cas où quelqu’un ne viole pas nécessairement les règles de la communauté, mais représente tout de même une épine dans votre pied.

La demande d’une fonction de blocage complet a déjà été soumise, mais nous l’avons généralement abordée ainsi :

Bonjour Kris, merci pour cette réponse.

Alors, avertissement : voici un petit monologue défensif, pas dirigé contre toi autant que contre toutes les personnes qui m’ont dit que je n’avais pas besoin de blocage… :wink:

Je fais de la gestion communautaire sur le terrain depuis une éternité (même à l’époque où je travaillais chez AOL, CompuServe et GEnie, en gérant des communautés sur leurs forums et salons de chat). Aujourd’hui, je gère mon propre site communautaire. Les forums font partie du site et constituent le lieu où une grande partie (mais pas toute) de la communauté de mon site interagit.

Je comprends parfaitement et totalement les raisons pour lesquelles le blocage n’est pas idéal… Je le comprends. Vraiment. J’ai lu tous les messages que j’ai pu trouver ici sur meta.discourse. J’ai vu les gens supplier pour obtenir la fonction Ignorer, j’ai vu les débats aller et venir sur les raisons pour lesquelles ce n’est pas une bonne chose, et j’ai vu quand vous avez finalement cédé et ajouté cette fonction au logiciel. :wink:

Dans tout cela, je pense que certains ont oublié que tout le monde ne gère pas un site qui est uniquement Discourse/uniquement une communauté basée sur des forums.

Dans ma situation actuelle, j’avais déjà une communauté solide sur mon site avant l’arrivée de Discourse : non seulement sur mes anciens forums (avec leur vieux logiciel médiocre), mais aussi grâce à la fonctionnalité de salon de chat de mon site (qui a ses habitués et sa propre communauté qui se superpose à celle de mes forums), ainsi qu’à d’autres fonctionnalités centrées sur la communauté de mon site web.

Et pour le meilleur ou pour le pire, mon site a toujours offert la possibilité de procéder à un « blocage complet » d’un autre membre. En partie à cause de problèmes communautaires, en partie parce que la communauté que je serve s’attend à ce que je sois TRÈS sensible à leur confidentialité pour plusieurs raisons, y compris des préoccupations juridiques (sérieusement).

Se poser la question « le blocage est-il une bonne idée ? » n’est pas la bonne question à me poser à ce stade. Même si personnellement je n’adore pas l’idée du blocage, ce bateau a déjà pris le large. :wink:

(Un peu plus de contexte : mes anciens forums étaient assez toxiques en raison des décisions prises par l’ancien propriétaire du site. L’une des raisons pour lesquelles les gens exigeaient un blocage bidirectionnel était à cause des bêtises dans les forums. Dans le cadre de ma mise à niveau vers Discourse et du lancement de forums tout nouveaux, je travaille également à aider à réparer la communauté des forums endommagée.)

Encore une fois, pour être absolument clair, je comprends parfaitement pourquoi le blocage n’est généralement pas un bon signe pour une communauté saine. En fait, je travaille à convaincre les membres de mon site, qui étaient auparavant trop prompts à bloquer, de se calmer un peu.

Donc.

Si je lançais une communauté toute neuve, je commencerais absolument par Discourse et je n’aurais pas besoin d’un blocage bidirectionnel.

Si j’avais un site qui ne disposait pas déjà d’un blocage bidirectionnel (ou si je ne passais pas d’un logiciel de forum qui prenait en charge le blocage bidirectionnel), je n’aurais pas besoin d’un blocage bidirectionnel dans Discourse.

Si ma communauté actuelle de forums n’était pas déjà endommagée, je n’aurais pas besoin de blocage bidirectionnel. Mais ils ont eu de terribles expériences par le passé qui ont exigé la fonction de blocage, que j’ai dû mettre en place. Maintenant, passer à Discourse est un changement majeur qui bouleverse déjà la communauté (c’est très différent de ce que j’avais, donc c’est un processus), et ce n’est pas le bon moment pour dire aussi « oh, et en passant, on abandonne le blocage ». J’aurais une révolte sur les bras.

Quoi qu’il en soit. Je m’excuse pour la longueur de cette réponse et j’espère ne pas paraître trop défensif. :wink: Je ne veux tout simplement pas être entraîné dans un débat philosophique sur le blocage et pourquoi ce n’est pas une chose saine.

J’ai toujours besoin d’une fonction de blocage complet.

J’apprécie sincèrement et vraiment tous les commentaires et toute l’aide ! Et l’une des raisons pour lesquelles je poste tout cela (et prends le temps d’écrire ce message fou et long) est que j’essaie de contribuer en retour à la communauté Discourse.

Laissez-moi conclure par ceci : Je sais que Discourse n’offre pas exactement ce que je demande pour le moment. Mais c’est proche ! Je n’essaie pas de convaincre l’équipe Discourse d’ajouter cette fonction au logiciel (cette conversation a surtout commencé et pris fin bien avant mon arrivée)… mais je suis en train d’essayer d’atteindre mon objectif avec les pièces dont je dispose… et je demande de l’aide aux penseurs intelligents, astucieux et créatifs, ainsi qu’aux codeurs que j’ai vus ici… et je partage ce que je découvre en cours de route avec les autres.

Je suis d’accord avec beaucoup de vos points, mais je souhaite simplement commenter ceci…

L’absence d’une fonction de blocage automatisé peut convenir pour des forums de petite à moyenne taille, mais à mon avis, c’est indispensable pour les grandes plateformes.

Cela s’explique, entre autres, par le fait que plus il y a de membres, plus il y a de publications, ce qui peut entraîner beaucoup plus de conflits interpersonnels. Tandis qu’une équipe de 10 modérateurs peut facilement « modérer » des forums comptant 10 000, 20 000 ou 30 000 membres, à mesure que la base de membres grandit, tout le reste croît à un rythme encore plus rapide : plus de voix, beaucoup plus de publications, beaucoup plus de problèmes.

C’est l’une des principales raisons pour lesquelles toutes les grandes plateformes de réseaux sociaux proposent des fonctionnalités de blocage. Une autre raison est d’ordre juridique : si quelqu’un signale être harcelé par un autre membre et que le site ne fait rien (peut-être parce qu’il estime qu’aucun harcèlement ne se produit, « c’est tout dans son esprit »), mais que cet utilisateur se suicide ensuite, le site pourrait être tenu pour responsable. Si quelqu’un ressent sincèrement qu’il est harcelé, alors c’est ainsi qu’il le ressent – peu importe ce que vous ou moi en pensons. Ce qui compte, c’est que nous avons un devoir de protection envers les membres, et l’un des meilleurs moyens de les aider à ne plus se sentir ainsi est de couper cette interaction, ce qui se fait mieux en leur permettant de bloquer eux-mêmes les personnes qui leur causent de la détresse (ou parfois en imposant ce blocage de notre côté).

Les jours où nous étions à la fois juges et jurés sont révolus – et nous ne devrions pas avoir à l’être non plus. Il ne nous appartient pas de décider ce qui cause ou non de la détresse aux autres.

C’est d’ailleurs pourquoi je pense aussi que nous avons besoin d’outils de modération plus modernes : les modérateurs ne devraient pas être placés dans la situation où ils doivent éditer les publications des utilisateurs (ce que la plupart perçoivent comme de la censure). Si ces publications sont inacceptables, nous devrions simplement pouvoir les retirer de la vue et demander aux utilisateurs de les modifier, les versions modifiées étant ensuite placées dans une file d’examen.

Je pense (j’espère !) que Discourse peut être un leader dans ce domaine.

Très bien dit. (Et ce n’est pas nécessairement hypothétique : pour ma communauté en particulier, nous avons dû faire intervenir les forces de l’ordre par le passé.) Réfléchir à des situations comme celle-ci et donner aux membres les outils pour s’auto-gérer est essentiel… et je soutiendrais même que c’est essentiel pour toute personne qui gère un bon site communautaire.

Je suis d’accord, une option comme celle-ci serait d’une grande aide. En général, nous n’éditerons jamais le message de quelqu’un d’autre sur mon forum… pour ces raisons exactes… nos membres seraient extrêmement sensibles au fait que nous modifiions leurs mots. Actuellement, les seules options dont nous disposons avec Discourse pour gérer le contenu problématique sont (a) supprimer le message ou (b) ne pas le supprimer. C’est un peu brutal et « quand on n’a qu’un marteau, tout ressemble à un clou. » :hammer: :grin: (Je comprends aussi que cette conversation sur les futurs outils de modération est probablement mieux placée dans un autre sujet…)

C’est une bonne idée. J’aime bien que cela replace la responsabilité sur l’auteur du message.

C’est pourtant ce à quoi on nous pousse à faire — mais la raison pour laquelle nous devons soit éditer le message, soit le supprimer (ce qui n’est pas idéal pour de nombreuses autres raisons), c’est que si le message est méprisant ou moins amical que nous ne le souhaiterions envers un autre membre, il vaut mieux le retirer avant que l’autre membre ne le voie. Une fois qu’il l’a vu, la fenêtre d’opportunité pour empêcher le développement de problèmes interpersonnels se ferme, et le début d’une spirale descendante commence. Cela, avec le temps, impacte bien plus que les deux membres concernés.

…et cela enlève beaucoup de pression à l’équipe de modération :smiley:

Essayez de signaler un message comme « Inapproprié » en utilisant le bouton « Agir » au lieu de « Signaler le message ». Le message sera masqué et l’utilisateur aura la possibilité de le modifier pour le rendre plus acceptable, après quoi le message sera automatiquement réaffiché.

La seule chose qui manque ici est de créer un élément d’examen pour la modification.

Oui, je pense que le système de signalement serait idéal pour cela. Outre ce qui a été mentionné ci-dessus, il serait également souhaitable d’inclure des « modifications recommandées » ou un type de message pouvant être envoyé à l’utilisateur (éventuellement obligatoire si le signalement a été effectué par un modérateur ou lorsqu’il est traité dans la file d’examen).

Non, cela n’arrivera pas. Si l’exigence du blocage strict des messages* (qui n’a jamais été une fonctionnalité logicielle de forum dans l’histoire) est inscrite dans le marbre, vous devriez passer à un autre logiciel libre et open source. Désolé !

Cela dit, je pense qu’une solution de contournement basée sur une API pour un blocage mutuel est une bonne option pour le moment.

  • blocage, signifiant « de plus, cette personne ne peut plus voir mes messages » en plus de « je ne souhaite plus voir les messages de cette personne »

Un effet secondaire amusant de mon astuce « ignore mutuel » est que je reçois maintenant BEAUCOUP de ces e-mails. Genre, des dizaines. Y a-t-il un moyen de les supprimer ? Je suis désolé de les voir disparaître (je pense qu’ils sont super utiles pour détecter d’éventuels problèmes communautaires), mais comme je dois détourner la fonction « Ignorer » pour que mes blocages fonctionnent, ces notes deviennent un effet secondaire involontaire.

Avez-vous vérifié les paramètres de votre site pour voir s’il existe un seuil que vous pouvez modifier ? C’est la première chose que je ferais.

J’ai lu une partie de ce contenu, mais c’est un peu au-dessus de ma compréhension :

Existe-t-il un moyen pour l’administrateur d’un site de faire en sorte que, si l’utilisateur A ignore l’utilisateur B, alors l’utilisateur B soit ignoré et n’ait plus accès aux publications de l’utilisateur A ?

Merci d’avance – je fais des recherches pour transmettre ces informations à l’administrateur.

Larry !

Non, vous ne pouvez pas bloquer complètement quelqu’un sur Discourse… l’action la plus extrême qu’un utilisateur normal puisse entreprendre est d’ignorer (une personne ignorée peut voir votre contenu, mais vous ne pouvez pas voir le sien).

@awesomerobot Un administrateur peut-il bannir quelqu’un du site ou de certaines parties de celui-ci ?

Oh, absolument, nous ne pourrions pas bloquer les spammeurs sans cela : les administrateurs peuvent bannir les utilisateurs, voire leur adresse IP, au cas où ils créeraient de nouveaux comptes.

Je dois intervenir ici, car j’ai vu comment cela a affecté notre propre forum Discourse, très diversifié.

Le double blocage forcé est une idée terrible, terrible et impose la volonté du forum sur l’individu vulnérable que vous essayez de protéger. Vous dites, en substance : « Je comprends que vous vous sentiez en insécurité et mal à l’aise avec cet utilisateur, mais nous ne pouvons pas simplement vous permettre de masquer ses messages – nous allons rendre le fait que vous ayez fait cela découvrable, de sorte que cet utilisateur pourrait maintenant avoir une autre raison de s’emporter et de vous attaquer ».

Il a fallu un effort concerté de la part de nombreux membres de Twitter qui s’identifient publiquement comme femmes pour que Twitter comprenne pourquoi c’était une idée terrible, terrible, et pour qu’ils autorisent leur fonctionnalité de « silencieux » – permettant de supprimer un utilisateur de vos vues et de votre fil d’actualité sans l’informer du fait que vous l’avez fait.

C’est vrai dans le monde réel, où le simple fait d’obtenir une ordonnance de protection contre un harceleur peut entraîner de la violence, car les harceleurs sont plus susceptibles de violer les ordonnances une fois accordées.

Pour cette raison seule, si c’est une fonctionnalité dans Discourse du tout, elle doit être choisie par le demandeur, et non par la volonté du modérateur ou du site.

Je dirais que si un utilisateur demande qu’une personne soit bloquée, et que le site informe l’utilisateur qu’il a été bloqué par l’utilisateur X sans son consentement, et que l’utilisateur bloqué escalade la situation, c’est un cas réel de responsabilité du point de vue du site aussi, mais plus que cela, cela aura sans aucun doute un effet dissuasif sur les personnes utilisant la fonction de blocage du tout (ce que j’ai vu de mon expérience personnelle), et transfère également le pouvoir à l’agresseur : « Tu ne peux pas me bloquer parce que je le saurai ! ».

Je dois être catégorique et d’accord ici. Cela ne devrait jamais être une fonctionnalité de Discourse ou cela doit être une option à opt-in pour le demandeur uniquement, et il faut rendre clair quels sont les risques très réels d’escalade ici.

Beaucoup de gens sont vraiment, vraiment fâchés lorsqu’un message est supprimé, se sentent « censurés » ou « annulés », ou ont une dynamique de pouvoir imposée qu’ils n’aiment pas. Mais ne vous y trompez pas, appelez-le comme vous voulez, mais la modération est de la censure, et elle s’accompagne d’une exigence inhérente de protéger vos membres contre les représailles qui en résultent – pour la même raison que les demandes de modération doivent rester anonymes également.

Ça ressemble à une question de la manière dont vous l’avez mis en œuvre…

Lorsque nous abordons les membres, nous le faisons généralement du point de vue de l’administrateur, par exemple : « Il est devenu évident que votre relation avec l’utilisateur X est arrivée à un point de non-retour ; par conséquent, nous estimons qu’il est dans l’intérêt de tous les concernés que vous vous ignoriez mutuellement à partir de maintenant… »

Nous n’avons jamais eu à émettre un blocage pour harcèlement sans que l’animosité n’ait déjà éclaté — d’où le fait que ce qui précède est beaucoup plus facile pour nous.

Non, il ne s’agit pas d’une question d’approche : « Cet utilisateur me fait me sentir en insécurité ou mal à l’aise et je souhaite ne plus voir ses messages » est une demande tout à fait légitime, et cela n’a absolument rien à voir avec le fait que les modérateurs soient d’accord ou non.

Donner aux utilisateurs le contrôle de ce qu’ils consomment est un objectif noble, indépendamment de ce que nous, opérateurs du forum, préférerions.

Car l’alternative, c’est que l’utilisateur quitte la communauté et que ses contributions soient perdues. Ils ne devraient pas avoir à « subir » une micromanagement de la part du site concernant la nécessité de bannir deux fois ou de notifier l’utilisateur ignoré. Ou, si cela doit être une option pour d’autres raisons, cela doit être facultatif (opt-in).

Faire autrement revient à nier l’autonomie d’un utilisateur qui a exprimé des préoccupations à l’égard d’un autre utilisateur. Ce sont ses propres yeux. Il a le droit de contrôler ce qui y entre et qui est informé de ses décisions.