有一些操作我期望(并且希望)能够生成 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 事件。” 这可能涵盖了目前未触发事件的更多情况。但是,我在表格中列出的几项是我目前最关心的,因为它们都涉及用户授权状态的变化。