How to do a "mutual ignore"?

Edit: I thought I was clever, but I wasn’t. See next message.

Hey, just wanted to share something I figured out… I am using Discourse as the forums on an existing member site, and on my existing site, members can block each other. When user A blocks user B, both users A and B can’t see each other, can’t interact, etc.

I needed the same functionality to carry over to Discourse. I have been racking my brain to figure out how to do this and I believe I finally got it sorted:

  1. I set up a Discourse webhook to receive events, so I can capture the user_logged_in event.

  2. When a user logs in, I walk through their ‘block’ list on my site.

  3. For each other member they’re trying to block, I use the Discourse API (note that this has nothing to do with SSO!) to “Ignore” the other user.

  4. And here’s the clever part: I also tell Discourse to have the other user ignore the main user logging in. In other words, both User A (who is logging in now) and User B (who is on User A’s block list) “Ignore” each other.

  5. Note that when I send over the “Ignore” message, I actually have to check that they are at least TL2, since “Ignore” is only a TL2 feature – if they aren’t, then I have to quickly upgrade them to TL2 before I can complete the “Ignore.” Upgrading a user to TL2 causes some other side effects (discobot advanced script starting, badges being awarded) that I had to deal with.

Oh, and I hide the “Ignored” list in the Discourse user profile (just simple CSS), since there is an interface on the main site to manage blocked users. I don’t want my Discourse members to see the Discourse ignore list at all.

Hopefully this helps other folks who need this kind of functionality…

2 Likes

So here’s the problem. The “Ignore” feature in Discourse doesn’t completely hide the other person. It makes their messages invisible (and actually does a really brilliant job at that)… and replaces them with a link that says ‘VIEW x HIDDEN MESSAGES’… this is something I can easily hide with CSS, so no big deal.

BUT! If someone has quoted a blocked user, you still see their avatar and name (but not any of the quote itself) on the message, and you also still see their avatar and name in message reply indicators. Crap.

That means that if User A blocks user B on my site… and I do the double-ignore trick (ignore in both directions) as I described in my previous message… then user B (who never themselves blocked user A) is suddenly seeing some weird stuff where User A is posting on the forum. And can figure out that User A has blocked them. So now that reveals private information (who user A has blocked) to user B. Which on my site is not good… at all.

Ughhhh

So I guess I’m at the point that I probably need to learn RoR finally :wink: and write a plugin that extends the existing “Ignore” functionality to really, really erase all traces of a user on an ‘Ignore’ list. Then I can go back to my double-block idea…

1 Like

Right, Discourse’s ignore feature isn’t really a full block feature (which is why we don’t call it block!). It’s more for the cases where someone might not be violating community guidelines, but they’re just a bit of a thorn in your side.

The ask for a full block feature has come up before, but we’ve generally approached it as:

8 Likes

Hi Kris, thanks for this reply.

So, warning, very minor defensive rant coming up here, not directed at you as much as all the people who have told me I don’t need blocking… :wink:

I have done hands-on community management for a zillion years (even back when I worked for AOL, CompuServe, and GEnie doing community stuff in their message boards and chat rooms). Now I run a community site of my own. Forums are a part of the site and where a lot (but not all) of my site’s community interacts.

I totally and completely get the reasons why blocking isn’t great… I get it. I really do. I read every message I could find here on meta.discourse. I saw the people pleading for Ignore, I saw the debates back and forth about why it’s not a great thing, and I saw when y’all finally capitulated and added it to the software. :wink:

In all of this, I think some folks forgot that not everyone is running a site that is only Discourse/only a forum-based community.

In my current situation, I already had a strong community on my site before Discourse came along: not only in my previous forums (with their crappy old software), but also with the chat room feature on my site (which has its regulars and its own community that overlaps with my forums) as well as other community-centric features on my web site.

And for better or worse, my site has always offered the ability to do a “full block” of another member. Partly due to community issues, partly because the community I serve expects that I will be VERY sensitive to their privacy for a number of reasons, including legal concerns (seriously).

Asking the question “is blocking a good idea?” isn’t the right question for me to be asking at this point. Even though I personally don’t love the idea of blocking, that ship has sailed. :wink:

(A little more context: my old forums were pretty toxic due to decisions made by the previous owner of the site. Part of the reason people demanded a 2-way block is because of the crap in the forums. As part of my upgrade to Discourse and unveiling all-new forums, I’m also working on helping repair the damaged forum community.)

Again, to be crystal clear, I totally understand why blocking is generally not a great sign of a healthy community. In fact, I’m working on trying to get my members who were previously block-happy to chill a bit.

So.

If I were starting a brand new community, I would absolutely start with Discourse and wouldn’t need two-way blocking.

If I had a site that didn’t already have two-way block available (or I wasn’t upgrading from forum software that previously supported two-way blocking), I wouldn’t need two-way block in Discourse.

If my current forum community wasn’t already damaged, I wouldn’t need two-way blocking. But they have had some terrible experiences in the past that have demanded the blocking feature, which I had to implement. Now making the change to Discourse is a big shift that is shaking up the community already (it’s a lot different than what I had so it’s a process), and it’s not the right time to also say “oh and by the way, we’re dropping blocking.” I’ll have a revolt on my hands.

Anyhow. I apologize for the length of this reply and I hope I don’t sound too defensive. :wink: I just don’t want to get pulled into a philosophical debate about blocking and why it’s Not A Healthy Thing.

I still need a full-block feature.

I sincerely and truly appreciate all feedback and help! And part of the reason I’m posting all this (and taking the time to write out this crazy-long message) is because I am trying to contribute back to the Discourse community.

Let me end with this: I know Discourse doesn’t exactly offer what I am asking for right now. But it’s close! I’m not trying to convince the Discourse team to add it to the software (that conversation mostly started and ended long before I got here)… but I am trying to accomplish my goal with the pieces I have in front of me… and asking for help from the smart, clever, creative thinkers and coders I’ve seen around here… and sharing what I discover along the way with others.

5 Likes

I agree with many of your points but just want to comment on this…

Not having an automated block feature is fine on small to medium sized forums but it is imo a must for large platforms.

This is, amongst other things, because more members equal more posts which potentially equal far more interpersonal issues developing. While a team of 10 moderators could easily ‘moderate’ forums with 10/20/30,000 members, as the member base grows everything else grows art a greater pace - more voices > many more posts > many more issues.

This is a major reason all the large social network platforms offer blocks. Another reason is from a legal standpoint - if someone reports they are being bullied by another member and the site does nothing about it (perhaps because they feel no bullying is occurring “it’s all in their mind”) but then that user commits suicide, the site could be liable. If somebody genuinely feels someone is bullying them then that’s how they feel - it doesn’t matter what you or I think. What matters is we have a duty of care towards members and one of the best ways to stop them feeling like that is if we cut that interaction - which is best done by allowing them to block people who are causing them distress themselves (or sometimes us imposing this on them).

The days of being judge and jury have long gone - and neither should we have to be. It’s not down to us to decide what is or is not causing others distress.

This is actually why I also think we need more modern moderation tools - moderators shouldn’t be put in the position where we are having to edit people’s posts (which most often see as censorship) if they are unacceptable we should just be able to remove them from view and ask them to edit it, with edits then put in a review queue.

I think (I hope!) Discourse can lead on this.

2 Likes

Extremely well said. (And this is not necessarily a hypothetical: for my particular community, we have had to get law enforcement involved in the past.) Thinking about situations like this, and giving members the tools to manage themselves, are critical… and I would argue, critical for anyone running a good community site.

I agree, an option like that would help enormously. In general we will never edit someone else’s post on my forum… for these exact reasons… our members would be super touchy about us messing with their words. Right now the only options we have with Discourse for dealing with problematic content are to (a) delete the message or (b) not delete the message. It’s a little blunt force and “when all you have is a hammer, everything looks like a nail.” :hammer: :grin: (I also understand that this conversation about future moderation tools is probably best for another topic…)

2 Likes

That’s a nice idea. I like how that would put the onus back on the poster.

2 Likes

This is what we’re being pushed to do - but the reason we must either edit the post or delete it (not ideal for lots of other reasons) is because if the post is demeaning or less amicable than we’d like towards another member, then it’s better to remove it before the other member sees it. Once they do, the window of opportunity to prevent interpersonal issues from developing closes, and the beginning of a downward spiral begins. This, over time, impacts far more than just the two members involved.

…and takes a lot of heat off the mod team :smiley:

2 Likes

Try flagging a post as “Inappropriate” but using the “Take Action” button instead of “Flag Post”. The post will be hidden and the user will be given a chance to edit the post to be more acceptable, after which the post will automatically unhide.

The only thing missing here is to pop a review item for the edit.

5 Likes

Yeah I think the flag system would be great for this. Apart from the above, it would be ideal to also include ‘recommended changes’ or some sort of message that can be sent to the user (perhaps compulsory if the flag has been sent by a moderator or when they action it in the review queue).

No, that won’t be happening. If hardcore block* (which has never historically been a forum software feature anyway) is a written in stone requirement, you should switch to different free open source software. Sorry!

That being said, I think an API based mutual ignore is a fine workaround for the moment.

* block, meaning “additionally, this person can no longer see my posts” on top of “I no longer wish to see this person’s posts”

4 Likes

A funny side effect of my “mutual ignore” trick is that I get a LOT of these emails now. Like, dozens. Is there any way to supress them? I am sorry to see them go (I think they’re super useful to help sniff out potential community problems) but since I’m having to co-opt the “Ignore” feature to make my blocks work, these notes become an unintended side effect.

Did you check your site settings to see if there’s a threshold number you can edit? That’s the first thing I would do.

I’ve read through some of this but Its a tad beyond me:

Is there a way for the Admin of a site to make to where if User A ignores User B then User B is ignored and no longer has access too User A’s posts?

Thanks in advance - I’m doing the research to forward the information to the Admin

Larry!

No, you can’t fully block someone on Discourse… the most extreme action a normal user can take is an ignore (an ignored person can see your content, but you can’t see theirs).

@awesomerobot Can the Admin Block Someone from the site or parts of it?

oh definitely, we couldn’t stop spammers without it - admins can ban users and even their IP address in the event they start creating more accounts

I have to chime in here, because I’ve seen how this has affected our own very-diverse Discourse forum.

forced double-blocking is a terrible, terrible idea and is imposing the will of the forum on the vulnerable individual you are trying to protect. you are, in essence, saying “I understand that you feel unsafe and uncomfortable with this user, but we can’t just allow you to hide their posts - we’re going to make the fact that you’ve done this discoverable so now that user may have another reason to blow up and go after you”.

It took a concerted effort on the part of a lot of Twitter members who identify publicly as female to get Twitter to understand why this was a terrible, terrible idea and to allow for their “mute” capability - to remove a user from your views and timeline without alerting them to the fact that you’ve done so.

This is true in the real world, where the very act of getting a protective order against a stalker may result in violence, as stalkers are more likely to violate the orders once granted.

For this reason alone, if this is a feature in Discourse at all, it needs be be chosen by the requestor, not the will of the moderator or the site.

I would say that if a user requests that someone be blocked, and the site informs the user that they have been blocked by user X without consent, and the blocked user escalates, that’s a real case for liability from the site’s perspective as well, but more than that, it will undoubtedly have a chilling effect on people using the block feature at all (which I’ve seen from personal experience), and also transfers power to the aggressor - “You can’t block me because I’ll know!”.

I have to unequivocally agree here. This should either never be a feature of Discourse or it has to be requestor-opt-in only and be made clear what the very real risks are for escalation here.

Many folks get really, really upset when they have a post deleted, feel “censored” or “cancelled”, or have a power dynamic forced upon them they don’t like. But make no mistake, call it what you will but moderation is censorship, and it carries with it an inherent requirement to keep your members safe from retaliation as a result - the same reason moderation requests need to remain anonymous, as well.

4 Likes

Sounds like how you implemented it was the issue…

When we approach members we generally do so from the perspective of the admin, eg: “It’s become apparent that your relationship with UserX has reached a point that is beyond repair, as such we feel it’s in the best interest of everyone involved that you both ignore each other from now on…”

We’ve never had to issue a block on the grounds of bullying where animosity hadn’t already surfaced - hence the above is much easier for us.

No, not a matter of approach: “This user makes me feel unsafe or uncomfortable and I would like to not see their messages” is an entirely valid request to make, and has nothing at all to do with whether or not the moderators agree or not.

Empowering users to have control over what they consume is a noble goal regardless of what we as forum operators would prefer.

Because the alternative is that the user leaves the community and their contributions are lost instead. They should not have to “endure” micromanagement from the site about having to double-ban or notify the user being ignored, or, if that has to be an option for other reasons, it has to be opt-in.

Doing otherwise is denying a user who has expressed concern about another user agency. It’s their eyeballs. They have a right to control what goes into them and who knows about their decisions.

3 Likes