Need ability to ban one or more users from a category

Identity Management. When you use an external system to provision in users and their group membership(s).

@Iceman why not tell us about the outcome you’re shooting for, rather than your assumed solution?

2 Likes

Hey! Thanks for answering.

Sure thing, last time I commented this but I can add more context, of course, the situation is as follows:

Context:

  • Discourse has multiple categories.

  • Categories are strongly enforced on a “theme” based.

  • Some of those themes can get hotter than others (say Sports, for example).

  • Sometimes a user is ok (even ideal) across the Community but there is that theme/category where they behave like a different person entirely (investment/beliefs/etc).

  • My view here is that it is a behavior similar to an alcoholic being exposed to a mini-bar or an open bar. You can ask them to not interact with it or to “just drink water” but what are you going to do… it happens.

  • I’m trying to avoid removing otherwise perfectly functional users from the community just because of that category that makes them berserk.

Therefore:

  • My initial idea was to just add those users to a group and that group be removed from a category or multiple ones. Sort of a “soft ban” or “soft punishment” to try to incentivate cooldowns or even just removing people entirely from certain categories.

Problems:

  • Groups add, and don’t subtract so I can’t use them in the way I was thinking.

  • A possible solution was to add all users to a group that has access to said categories and then remove the ones that are being soft-banned. Problem is that there is no mechanism that puts new users automatically in a new category (except for trust levels).

  • I can’t resort to Trust Levels only as those come with functionalities that I’m trying to avoid removing from said people.

Updates

  • I discovered @Falco’s extension here and it seemed like maaaaaybe it can help me with this.

I hope my explanation makes sense. :pray:

Thanks!

It does, although I do wonder if you’re not just allowing people problems to create a whole raft of technical burden. Hiding categories by CSS might make them disappear from parts of the UI, but it won’t prevent them from opening the category pages via other means.

Do you not have a CM or any active moderation in this community? This is precisely the kind of scenario where the human element plays a critical role, and software probably needs to take a back seat.

Unless your community is behind a paywall, hiding a public category (that’s presumably visible anonymously) will either drive said user to create a sock puppet, or maybe even locally override any css changes and continue misbehaving. Users need to see that such misbehavior is tackled head-on, first with polite requests which reiterate your policies, then by timeouts (account suspension) and finally by eliminating their access entirely.

Great software can’t fix the gaps in your culture. By reinforcing boundaries and calling out bad behavior these users are given a chance to mend their ways, would-be troublemakers are deterred, and the rest of your users know that the way they’ve been treated isn’t acceptable.

2 Likes

Just because someone does lots of good things doesn’t mean that they should’t be punished for the bad things they do, even if it means they can’t do the good ones anymore.

Suspend the person and if they later continue to be a bad person, kick them out.

2 Likes

No, because, as Iceman and Gunnar said, these people are “Ideal” and “valued” in other categories.

If they were willing to just drop-kick them, they wouldn’t be here looking for ways to accommodate them.

I have a similar/different situation; we have a Discourse that belongs to a club by whose rules they must have access to at least some of the Categories (legally required to be able to access.) But we still want to be able to exclude problem individuals from certain Categories.

I opened this:

… but I’m still open to other possible solutions.

1 Like

Then make a group for ACCESS_TO_REQUIRED_GROUPS and another for ACCESS_TO_GROUPS_NOT_FOR_JERKS and set the category permissions accordingly. Then don’t let the jerks join the other group

1 Like

How is this part done?

How do we set Groups such that anyone can join, but that certain people can get barred?

One solution with Discourse’s current limitations. Might be to mute the category in their user profiles.

Create a theme component and hide the group you do not want jerks to see. Anyone added to jerk list in component will not see the group to join. Hide with CSS. For most this will work.

1 Like

I think for that too work the members of the jerk group will be publicly available.

1 Like