jericson
(Jon Ericson)
1
重现问题
- 获取一个测试实例,以免破坏现有社区。
- 将“每天最大私人消息数”设置为 1。(默认值为 20。我不确定 0 对此设置意味着什么,所以我选择了次优选项。)
- 模拟一个非员工用户。(作为管理员,我没有看到问题。我猜测是因为员工不受此速率限制,但我没有查看代码以确定。)
- 从您模拟的帐户向其他人发送测试私人消息。(我将其发送到我自己的帐户。)
- 使用“其他原因”标记随机帖子。(据我所知,其他标记原因不会出现此问题。)
您应该会看到一个弹出窗口,显示:
发生错误:您已达到每天允许的最大消息数。您可以在 23 小时后创建更多新消息。
重要性
有几个相关设置:
- 每天的 PM 线程数。(默认 20)
- 每天的标记数。(默认 20)
- 每天的标记数乘以信任级别。(TL2 => 1.5,TL3 => 2,TL4 => 3)
因此,TL3 用户可以在滚动 24 小时内发起最多 20 个 PM 线程,并标记最多 40 个帖子。但是,使用“其他原因”的标记同时计入 PM 线程限制和标记限制。由于 PM 限制没有 TL 倍数,因此无法仅为受信任的用户提高速率限制。
也许更重要的是,此消息似乎与用户采取的操作无关。不清楚某个特定的标记原因会启动 PM 线程。要了解现实生活中的这种混淆,请参阅以下帖子:
- 每天最大消息数?
- 又达到了最大消息数……
经过今天的调查,我现在可以建议如果您一天用完了 PM 线程,请不要使用“其他原因”。但这并不理想,因为它会阻止一些用户为他们的标记添加必要的上下文。我可能会增加 PM 线程速率限制,并希望没有人发现他们可以开始垃圾邮件发送给其他用户。
可能的解决方案
- 不要将系统生成的 PM 线程计入用户。 因此,如果我标记一个帖子,并且系统将其有效地转换为与版主之间的 PM 线程,那不应该计入我的限制。对于标记,应仅适用标记速率限制。
- 修复消息,以便用户可以自行诊断问题。 我没有简洁的副本可以建议,但应该清楚问题是使用“其他原因”进行标记,而不是其他类型的标记。我不会包含任何表明这与 PM 线程相关的指示,除非经过仔细解释。这对于普通人来说太深入系统内部了。
- 为 PM 线程速率限制添加基于 TL 的乘数。 我真的认为 20 在大多数情况下都足够了。但如果标记会消耗限制,我希望至少为受信任的用户提供与普通用户相同的 PM 线程启动次数。
10 个赞
pfaffman
(Jay Pfaffman)
2
嘿 @sam,你
这个,已经一个月了(我终于把网站升级到了 3.1.0.beta3)。我只是想看看期待已久的升级是否会包含对此的修复,我记得好像看到过一个关于它的提交,但在这里没看到任何东西。
1 个赞
sam
(Sam Saffron)
3
我喜欢这个修复的想法,但还没有安排任何内容。解耦听起来是正确的解决方案。
3 个赞
您好,
我有一个针对此 bug 的修复方案。但在提交 PR 之前,我想先讨论一下我的解决方案。
很简单,新的私信被设置为属于 system 用户,而实际用户则成为该消息的接收者,而不是发起者。
有一点值得一提:用户将在收件箱中收到来自 system 的他自己的消息。
有什么想法吗?
1 个赞
这对 Discourse 来说将是一个绝佳的改进。即使默认不允许 TL0 发送 PM,突然允许 TL1 发送大量不同的新 PM 线程也可能导致低级别的 PM 垃圾邮件攻击。或者,PM 速率限制可以设置为非常低,但这同样适用于受信任用户 >= TL2 的情况将是不可行的。
您好,
我重新跟进这个讨论。此功能显然很有趣。在我的情况下,我禁用了私信功能,因为我不希望向我的用户提供此功能。但这带来的影响是,他们无法使用“其他”选项来举报帖子。
1 个赞
感谢 @jericson 的报告,我在使用一个会向版主生成私信的标志时,“跳过”了“私信速率限制”,详见
2 个赞
Moin
9
您是如何禁用的?我从 personal message enabled groups(私信启用组)站点设置中移除了所有组,但用户仍然可以标记为“something else”(其他)。消息组收件箱不是基于该设置,而是在组的设置中配置的。
1 个赞
@Kluges 我已将“每日最大私信数”参数设置为 0
1 个赞