防止用户自行删除主题?

Hello,

I’m new here and hope I’ve chosen the right category.
Since the update to v2. 4. 0 it is possible for every user to delete his own threads. I don’t think that’s good. Is it possible to set somewhere that nobody but the moderators and administrators can delete complete threads? Anyone should be able to delete their own posts. Just no complete threads.

I’m already thanking you for the answers.

Yours sincerely
paeddy

1 个赞

From personal experience, I’ve seen that they’re only able to delete their own topics it doesn’t have any replies to it; which I feel is fine. It’s a user’s discretion to initially post the topic and show the content to others on the forum. The same goes for posts.

If a topic has people actively replying or has previously replied, they shouldn’t be able to delete the topic, however, I think this is already the case.

7 个赞

Thank you very much for your answer.

That the user can only delete the topic if there is no answer to it was not known to me. I just tried it. As soon as there is a reply, the topic can only be deleted by a moderator or administrator. I think that’s good. Thank you so much for the clarification.

Best regards
Paeddy

3 个赞

自 2.8.0.beta6 版本起,这 [部分] 不准确:用户删除了其账户,包含 70 多条回复的主题也随之被删除,对所有人都不可见。

1 个赞

我认为用户无法自行删除其账户——只有管理员可以。即便如此,也有建议对用户名进行匿名化处理,以防止您刚才描述的情况发生。

1 个赞
  1. 用户注册并发布了多条消息。
  2. 我将一些消息从一个主题移动到了一个新的主题(离题/讨论)。
  3. 来自步骤1中用户的第一条消息是该主题的首条消息,因此他成为了“主题发起人”。人们在这个新主题中进行了讨论,发布了80多条消息。
  4. 几天后,该用户删除了他的账户。如果账户是最近注册的,他可以执行此操作。
  5. 该主题被删除。

这是一个真实的情况。我找到这个主题是因为起初我以为用户只是删除了他自己的主题,但实际上——他只是删除了账户,从而导致主题被删除。Discourse 在删除账户时会自动清除所有账户数据(包括所有帖子)——我在日志中先看到“主题已删除”,随后看到“账户已删除”。

1 个赞

嗯,用户不应在发帖后删除账户。

但这是与本帖原始发帖(OP)不同的问题,或许可以将其移至新主题。

2 个赞

不。当我尝试复现该问题时,我使用新注册的账号成功创建了一个主题,从不同账号回复了该主题,然后删除了该账号。该主题也随之被删除了。

1 个赞

好的,我想我明白了。
以下是复现该 bug 的步骤:

  1. 拥有一个相对较旧的账户(几天),包含若干帖子和一个主题
  2. 手动删除所有消息
  3. 等待“删除已移除帖子后”的超时时间(默认为 24 小时)
  4. 现在您只剩下一个帖子——即主题的首帖。您可以在个人资料中删除您的账户,该主题也会随之消失。这是由于默认设置 delete user self max post count = 1 导致的。

以下是 delete removed posts after = 0 的视频演示,此时帖子会被立即删除。
删除账户后,该主题也被删除了。

3 个赞

请在 /admin/site_settings/category/users 中检查您的设置。

以下是默认设置。正如底部所述,您可以将最后一个值设置为 -1 以禁用用户账户的自助删除。如果该方案过于严格,您可以降低 delete user max post age(删除用户最大帖子年龄)的最大天数,和/或降低 delete all posts maximum(删除所有帖子的最大数量)。

2 个赞

delete user self max post count = 0 应该禁止删除该用户,如果该账户创建了包含回复的主题,因为首帖无法被删除。

我想知道为什么默认值是 = 1

1 个赞

如果用户只有少量帖子,他们可以删除自己的账户。

2 个赞

我认为这是针对有人注册、发布一条帖子后反悔的情况。在这种情况下,他们无需先删除帖子再删除账户,可以直接删除账户。

如果您不希望用户自行删除账户,而是需要申请删除,请将相关设置设为 -1

但是,如果您遇到用户一次性删除大量帖子的问题,应降低“删除所有帖子的最大数量”设置。“删除用户的最长帖子年龄”决定了用户首次发帖后多长时间内可以删除账户。降低该值即可缩短用户可删除账户的天数限制。

1 个赞

delete all posts maxdelete user max post age 改为更低的值在我的情况下帮助不大。在我的案例中,该账号大约存在一周,发布了 7 条帖子,但它是某个话题的发起者。

被删除的话题仅出现在管理员日志中(删除操作由“系统”账号执行)。这让我感到困惑,因为我明明记得有一个话题,却找不到它。

执行此操作的人了解 Discourse 的默认设置。帖子先被标记为删除,24 小时后被实际删除,随后该人将邮箱地址更改为一次性邮箱并删除了账号。

1 个赞

上述第一个设置可能是应对此类行为的最佳方案——减少最旧帖子的保留天数。

默认情况下,话题创建者可以删除其话题。通过上述设置对此施加限制,应根据帖子/回复的数量有助于防止删除。最后一个设置应阻止任何话题被删除(管理员除外)。

:thinking: 我无法理解更改邮箱地址后立即删除账户的逻辑……除非这个一次性账户会被用来接收账户已删除的通知?但我不认为他们会收到此类通知。为什么要通知垃圾邮件发送者其账户已被删除?向垃圾邮件发送者发送垃圾邮件吗?:laughing:

:crossed_fingers: 希望此类情况不会重演。

出色的侦探工作 @ValdikSS —— 所以您实际上概括的是:

在 Discourse 中,如果用户仅有一篇或零篇帖子,默认情况下可以删除其账户。然而,如果那唯一的一篇帖子是一个主题,则_整个主题将被删除。_

这大体上是按设计运行的……我认为我们未曾预料到这种特殊情况,即用户创建的主题作为其唯一的一篇帖子。

2 个赞