为什么没有记录谁添加或删除了慢速模式?

慢速模式对我们论坛的某些主题非常有用。但我发现 Discourse 在这方面存在一个严重的设计缺陷:没有记录谁添加或删除了慢速模式。我甚至检查了数据库,仍然没有记录。任何 TL4 用户都拥有此功能。对于有争议的主题,添加或删除慢速模式会使主题更具争议性,我们确实需要知道是哪个用户执行了此操作。

1 个赞

您可以使用 Data Explorer 查询此信息。我认为这应该可行——您需要指定开始和结束日期。它应该返回主题、慢速模式的秒数、主题慢速模式的更新时间和执行者:

-- [params]
-- date :start_date
-- date :end_date

SELECT 
    t.id AS topic_id,
    t.title,
    t.slow_mode_seconds,
    t.updated_at,
    u.id AS user_id,
    u.username
FROM 
    topics t
JOIN 
    users u ON t.user_id = u.id
WHERE 
    t.slow_mode_seconds > 0
    AND t.updated_at BETWEEN :start_date AND :end_date
ORDER BY 
    t.updated_at DESC
2 个赞

我认为它们存储在 topic_timers 中(至少在它们处于活动状态时),所以类似这样的东西可能可以解决问题:

SELECT 
    topic_id,
    user_id
FROM topic_timers
WHERE status_type = 9

不过,在这两个查询中,它们都只给出了活动计时器,而没有给出慢速模式已结束的结果。我认为将此添加到员工操作日志中会是一个很好的补充。

5 个赞

这给了我创建(或最后更新)主题的用户,而不是添加或删除慢速模式的用户。

1 个赞

对我们来说重要的是谁移除了管理员添加的慢速模式。

同意

2 个赞

哈哈,我现在看到了。 :thinking:

u.id AS user_id,

您好 @physixfan

感谢您的建议!这确实是一个有用的功能请求。我已经合并了添加此功能的 PR:

您现在可以在管理员日志面板中看到谁修改了慢速模式:

8 个赞

此主题在上次回复后 2 天自动关闭。不再允许新回复。