需要能够禁止一个或多个用户访问某个分类

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%的用户行为正常,这种做法根本不现实。

关闭或移除问题分类也无效,我们已尝试过。讨论只是会蔓延到其他分类,并破坏那些分类的氛围。

我们曾尝试进行 Moderation( Moderation ),但实在缺乏足够的人力。

我们非常需要那个“减号”安全设置。拜托了。

Gunnar

我很好奇,为什么当这些用户持续违反社区规则时,不要求他们永久离开?该功能目前不在我们的任何路线图计划中,因此您可能需要等待一段时间。

1 个赞

如果实在无法直接将其踢出,或许可以创建一个“禁止在 xxx 发布”的群组,然后使用 CSS 在该分类中隐藏他们的帖子?

鼓励用户标记他们的帖子,以便将其隐藏?

说得很好,我们确实偶尔会这样做。我们社区的成员构成有些……性格比较棘手。其中一些人的性格背后掌握着对更大社区极具价值的知识。

这很遗憾。这其实是一项相当基本的功能。

好主意。我会去研究一下。谢谢!

哦,他们确实已经在这么做了。确实如此。:wink:

2 个赞

我认为你现在的最佳选择是:

  1. 通过用户偏好设置,屏蔽该特定用户的问题类别。
  2. 使用 CSS 技巧或主题组件,正如 Jay 所建议的那样。
3 个赞

或者,直接使用身份管理系统(IdM)在外部管理群组,并从这些群组中移除相应成员,而不是推动 Discourse 去实现一种“减法”权限模型。

问题在于,几乎无法阻止他们创建其他账号。你上述的尝试已经充分证明,这是一个人的问题,而非技术问题。

3 个赞

感谢这个建议!

能否提供一些关于如何实现它的提示?

据我所知,群组归属并不会通过 HTML 属性来标识。是否有其他方式可以让 CSS 检测某人是否属于特定群组?

嗯,我对 CSS 不太擅长。不过我相当确定,之前出现类似问题时,组(或者可能只是主组?)的信息是存在的。但我也可能记错了。你可能需要将当前用户的组信息添加到序列化器中。

你可以安装这个名称恰如其分的主题组件来实现该功能:

3 个赞

非常感谢!

就我的情况而言,我需要将群组成员关系设为私密,因此我将采用以下方案:

硬核亡灵术(抱歉了),但不知何故,当我为这个其他主题执行此操作时,此帖子未显示在搜索结果中。

@Falco 我正在尝试使用您的主题组件,如果您不介意的话,我有两个问题:

  1. 我是否需要隐藏与类别相关的每一个 CSS 组件?

  2. 这并不能阻止用户被@提及并点击通知并无论如何都能到达那里,对吗?


附注:@Stephen 在此上下文中“IdM”是什么意思?

再次感谢,并为此再次道歉。即使我有时同意@codinghorror 的“从根源上解决”的方法,但_生活并非如此简单……_

1 个赞