缺失的 webhook 用户事件 - 是设计使然还是疏忽?

有一些操作我期望(并且希望)能够生成 webhook user 事件,但它们没有。在提交 bug 报告(或 PR)之前,我想更好地了解原因。

操作 预期的 user 事件
管理员停用账户 user_logged_out
管理员匿名化账户 user_logged_out
用户通过“注销所有设备”按钮自行注销 user_logged_out
添加到群组 user_updated
从群组中移除 user_updated
信任级别增加/减少 user_updated
授予/撤销版主状态 user_updated
授予/撤销管理员状态 user_updated
恢复 user_updated
禁言/解除禁言 user_updated
  • 前三个操作都会导致用户全局、所有会话失效的注销——但与其他类似操作(例如,管理员注销用户)不同,这三个操作不会生成 user/user_logged_out 事件(或任何其他事件)。
  • 添加/移除用户到/从群组会生成 group_user 事件,但不会生成 user 事件。group_user 事件本身用处不大,因为它只包含群组和用户的内部数字 ID。另一方面,在 user 事件上发送的 "user" 记录包含有关用户所属的所有群组的非常有用的信息,包括群组名称以及用户与群组关系的详细信息。
  • 当用户的信任级别提高时,会发出 user_promoted 事件,其中包含与 user 事件非常相似但又不完全相同的数据。当用户的信任级别降低时,根本不会发出类似的事件。
  • 当版主或管理员状态发生变化时,不会发出 user 事件。(通过 group_user 事件可以间接获得授予操作的用户特定证据;撤销操作没有用户特定的证据。)
  • 暂停用户确实会发出 user/user_logged_out 事件(带有指示暂停的 "suspended_reason""suspended_till" 字段)……但用户被解除暂停时没有事件。用户被禁言或解除禁言时根本不会发出任何事件。

这些遗漏是故意的吗?

我的总体想法是“如果 user 事件的 "user" 记录中的数据会发生变化,那么就应该发出 user 事件。” 这可能涵盖了目前未触发事件的更多情况。但是,我在表格中列出的几项是我目前最关心的,因为它们都涉及用户授权状态的变化。

5 个赞