Need ability to ban one or more users from a category

We have a group/category that is only visible to logged in users. I.e. we’ve set trust_level_0 to have create/reply/see.

We have a few users who can be disruptive in this particular category, but their input is valued in other categories on the site. Simply asking them to stay away from that first category is not working, I need a way to kick them out, while still allowing them to participate in other categories.

Going the route of explicitly allowing everyone else, minus these few disruptive people, is not realistic as we have over 41,000 users.

Bottom line: We need a way of setting the permission of “all logged in users, minus NN1, NN1, NN3… NNn” to a category.

Any ideas on how this can be accomplished?

Thanks,
Gunnar

2 лайка

You’d need to create a new group, copy all the tl0 users and delete the bad people, and adjust the category permissions. And you’d need to add new people to the group as time goes on.

1 лайк

As Jay mentioned there is no way to create a “minus” in category permissions. This could be done in a plugin that keeps track of a custom group’s membership.

We don’t have any plans on adding “minus” security into the security tab.

One human way of solving this is:

Ban user for 7 days from the forum, if user continues being disruptive in that category ban for 30 days.

6 лайков

I can relate to the quandary. For example, if a passionate member was exemplary in the “cars” category but toxic in the “trucks” category I would be torn. On the one hand I would want to not lose the benefit to “cars”, on the other I would definitely want the “trucks” toxicity to stop.

If the member was reasonable, they would agree to my initial polite request. If they persisted it might be they considered themselves to be an indispensable asset and entitled to misbehave.

Having a way to avoid (postpone?) the need to make hard decisions that could lead to awkward conflict does seem like it would be something desirable. But it would need to be done with a plugin and I don’t know how effective it would be.

I fear that even if a plugin did a type of

if currenUser = "TruckHater" && category = "trucks" 
  currentUser.blocked = true 

that eventually the member would complain about it and react poorly.

I agree with sam that a temporary wrist slap either by a short term Silence (née Block) or Suspend is the better way, even with the risk of losing the benefits to ensure the toxicity stops.

3 лайка

With 41k users and adding 6-10 users every day, that’s just not practical. Neither is monitoring a category 24/7, or for that matter, monitoring the user 24/7.

Follow-up question: Can a user be put on probation, so that every post they make is automatically held for moderation?

Thanks,
Gunnar

This is a great feature request and something that has popped up before, I would like us to have this option but we do not have it now.

Closest would be locking the user at tl0 and putting all tl0 posts through the moderation queue.

10 лайков

Then I’d like to add my voice/vote to this feature request. As forums grow and age, more granular user administration than what Discourse currently offers will be needed, and not just by Jag-lovers.

Thanks!
Gunnar

3 лайка

We do this all the time and we have plenty of positive experiences with this approach. There is a plugin though which we haven’t tested yet:

Would be very nice to have that one integrated to the core.

7 лайков

Thank you!

I just installed and tested the plugin, it works exactly like advertised. Please integrate this into the core, like @rizka suggests.

Oh, and please add functionality so that the addition to the list of a user can be time limited. IOW, so they can be put on probation for 1 day, a week, or whatever, then automatically returned to “normal”.

Thanks,
Gunnar

2 лайка

С тех пор прошло уже более двух лет. Мы пробовали такой подход, но он не работает. У нас есть один нарушитель, который сейчас находится на шестом сроке блокировки, и ещё около пяти человек, которые почти догнали его. Всё потому, что они не могут сохранять спокойствие и оставаться вежливыми в одной конкретной категории. В остальных же категориях они ведут себя нормально и даже обладают глубокими знаниями, поэтому нам бы очень не хотелось их полностью терять.

Сейчас у нас уже 45 000 пользователей, и каждый день их становится ещё на 20–50 больше. Вручную назначать права доступа к категории, где 99% пользователей ведут себя корректно, просто нереально.

Закрытие или удаление проблемной категории тоже не помогает — мы уже пробовали. Обсуждения просто перетекают в другие категории и портят их.

Мы какое-то время занимались модерацией, но у нас просто нет для этого необходимых ресурсов.

Нам действительно нужна эта настройка безопасности «минус». Пожалуйста.

Гуннар

Мне интересно, почему вы не просите этих пользователей уйти навсегда, если они постоянно не могут соблюдать правила сообщества? Эта функция не входит в наши текущие дорожные карты, так что, возможно, вам придётся подождать.

1 лайк

Если вы действительно не можете просто выгнать их, возможно, создайте группу «не разрешено в xxx» и используйте CSS, чтобы скрыть их сообщения в этой категории?

Поощряйте пользователей помечать их сообщения, чтобы они скрывались?

Хорошая мысль, и мы так делаем, иногда. Демография нашего сообщества — это немного сложненькие характеры. Некоторые из этих личностей обладают знаниями, которые представляют большую ценность для всего сообщества.

Это жаль. Это довольно базовая функциональность.

Отличная идея. Я займусь этим. Спасибо!

О, они уже это делают. Конечно, делают. :wink:

2 лайка

Сейчас, на мой взгляд, лучше всего:

  1. Отключить уведомления по проблемной категории для этого конкретного пользователя через настройки профиля.
  2. Использовать CSS-хаки или компоненты темы, как рекомендовал Джей.
3 лайка

Или просто используйте IdM для внешнего управления группами и исключайте их из этих групп, вместо того чтобы заставлять Discourse внедрять модель разрешений на основе исключений.

Проблема в том, что ничто не мешает им создавать другие учетные записи. Ваши усилия выше наглядно показали, что это проблема людей, а не технологий.

3 лайка

Спасибо за это предложение!

Можете ли вы дать какие-то подсказки о том, как это реализовать?

Насколько я знаю, членство в группах не указывается с помощью HTML-атрибутов. Есть ли какой-то другой способ для CSS определить, является ли кто-то членом конкретной группы или нет?

Хм. Я не очень хорошо разбираюсь в CSS. Но я почти уверен, что группа (или, возможно, только основная группа) присутствовала, когда ранее возникала похожая проблема. Хотя я могу ошибаться. Возможно, вам нужно добавить группу текущего пользователя в сериализатор.

Для этого можно установить этот тематический компонент с говорящим названием:

3 лайка

Большое спасибо!

В моём случае memberships групп должны быть приватными, поэтому я выберу это решение:

Хардкорный некромантия (извините), но somehow, когда я делал это для этой другой темы, этот тред не появился в поиске.

@Falco, я пытаюсь использовать ваш компонент темы, и у меня есть два вопроса, если вы не против:

  1. Мне basically нужно скрыть каждый отдельный CSS-компонент, связанный с категорией?

  2. Это не предотвращает того, что пользователь будет @ и, кликнув на уведомление, попадет туда, верно?


Кстати: @Stephen, что такое “IdM” в данном контексте?

Спасибо и извините за это снова. Даже если я согласен с подходом @codinghorror «вырезать с корнем», иногда жизнь не так проста…

1 лайк