该功能的设计似乎是为了将帖子数据从数据库中完全删除。但是,我们发现通过 /admin/logs/staff_action_logs 仍然可以在数据库中找到该数据。
我们试图从数据库中完全删除该帖子,以符合当地法规。是否有办法从 staff_action_logs 中删除帖子数据?
该功能的设计似乎是为了将帖子数据从数据库中完全删除。但是,我们发现通过 /admin/logs/staff_action_logs 仍然可以在数据库中找到该数据。
我们试图从数据库中完全删除该帖子,以符合当地法规。是否有办法从 staff_action_logs 中删除帖子数据?
我相信目前没有办法从用户界面做到这一点。如果您有权限,我认为您可以通过 Rails 控制台删除员工操作本身。
您可以通过检查员工日志 JSON(/admin/logs/staff_action_logs.json)或使用数据探索器查询来获取员工操作的 ID,从而获得一个列表供您选择:
SELECT *
FROM user_histories
WHERE action = 17 -- '删除帖子'的操作代码
ORDER BY created_at DESC
然后,在 Rails 控制台中,使用该 ID:
UserHistory.where(id:[ID]).delete_all
不过,更仔细地阅读您的问题,我认为您可以覆盖“details”部分,而不是删除日志,可以使用类似这样的方法:
UserHistory.where(id:[ID]).update(details:"permanently deleted")
Just a bump: our recent commit has enabled Discourse to automatically clean up sensitive log messages when they are permanently deleted.
Anyway, the log can be also deleted with rails c like this:
UserHistory.where(post_id: xxx).destroy_all
# or topic:
UserHistory.where(topic_id: xxx).destroy_all
日志是无限的吗?如果是,那么 GDPR 会因为敏感数据而反感,因为这意味着一个人可以被识别。如果不是,那么说明数据处理解释了备份存储了多长时间就足够了——但那个时间必须是合理的。
但是……敏感数据与 GDPR 的要求略有不同。银行账号非常敏感,但没有人能仅凭此识别一个人;至少在芬兰是这样。
这看起来会删除与帖子或主题 ID 相关的所有 user_histories 记录,而不是覆盖详细信息部分或将破坏性操作仅限于永久删除的日志?
是的,此命令适用于希望完全删除与帖子/主题相关的所有日志的用户。![]()
此主题在最后回复后 3 天自动关闭。不再允许新回复。