限制邮件列表模式到用户组

您好,

我们拥有一个年龄结构偏大的用户群体,他们非常习惯并通过邮件列表模式大量使用我们的论坛。我们希望保留这一群体,因为他们为讨论带来了丰富的知识。

随着新成员的加入,我希望限制邮件列表模式的使用,因为该模式会持续占用线程并产生成本。因此,我打算仅允许老用户使用该模式,而禁止新用户启用它。

请问有什么方法可以实现这一目标吗?

谢谢,
Uwe

您可以在站点设置中禁用它,方法是使用

disable mailing list mode

认为这仍然会允许已启用该功能的现有用户继续使用?说明文字写道

禁止用户启用邮件列表模式。

但我会询问 @sam——这会让所有人的邮件列表模式都失效,还是仅仅隐藏该设置?

我认为你可能应该隐藏与 CSS 相关的设置。你也可以选择不隐藏它,以便那些希望使用它(或关闭它)的用户能够看到。

我相信关闭站点设置将会完全禁用该功能,不过我尚未查看代码(或实际测试)以确认这一点。

它只是隐藏了该设置。这样做可能的一个缺点是,它会阻止之前已启用邮件列表模式的用户通过 UI 禁用它。

感谢您的调查!
为确认一下:如果我禁用邮件列表模式,旧用户将保留在邮件列表模式中。如果他们中有人想切换到接收摘要的标准模式,是否需要联系我?

那我该如何更改他们的设置呢?我只看到与他们相同的设置选项。这是否意味着每次请求都需要使用命令行界面(CLI)?

在选中“禁用邮件列表模式”设置后,要为之前已启用该模式的用户禁用邮件列表模式,最简单的方法是:先暂时取消选中“禁用邮件列表模式”设置,进入该用户的偏好设置页面并为其禁用邮件列表模式,然后再重新启用“禁用邮件列表模式”设置。

另一种方法是使用 Rails 控制台。例如,如果你已经知道该用户的 ID:

uo = UserOption.find_by(user_id: <user_id>)

uo.update(mailing_list_mode: false)

由于 Discourse 现在将“禁用邮件列表模式”设置的默认值设为 true,我对此进行了进一步研究。当“禁用邮件列表模式”设置为 true 时,Discourse 将 不发送任何邮件列表邮件。这意味着该设置会完全禁用站点的邮件列表模式。不过,用户的选项不会改变——如果你在将其设置为 true 之后又将其改回 false,之前选择过邮件列表模式的用户将重新开始接收邮件列表邮件。我认为这是正确的行为。