引入一种方法,永久删除员工日志中的敏感信息

该功能的设计似乎是为了将帖子数据从数据库中完全删除。但是,我们发现通过 /admin/logs/staff_action_logs 仍然可以在数据库中找到该数据。

我们试图从数据库中完全删除该帖子,以符合当地法规。是否有办法从 staff_action_logs 中删除帖子数据?

10 个赞

我相信目前没有办法从用户界面做到这一点。如果您有权限,我认为您可以通过 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")
8 个赞

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
5 个赞

日志是无限的吗?如果是,那么 GDPR 会因为敏感数据而反感,因为这意味着一个人可以被识别。如果不是,那么说明数据处理解释了备份存储了多长时间就足够了——但那个时间必须是合理的。

但是……敏感数据与 GDPR 的要求略有不同。银行账号非常敏感,但没有人能仅凭此识别一个人;至少在芬兰是这样。

这看起来会删除与帖子或主题 ID 相关的所有 user_histories 记录,而不是覆盖详细信息部分或将破坏性操作仅限于永久删除的日志?

是的,此命令适用于希望完全删除与帖子/主题相关的所有日志的用户。:slightly_smiling_face:

2 个赞

此主题在最后回复后 3 天自动关闭。不再允许新回复。