Il existe un certain nombre d’actions qui, je m’attendrais (et j’aimerais) à ce qu’elles génèrent des événements webhook user, mais ce n’est pas le cas. Avant de signaler des bugs (ou de soumettre des PR), j’aimerais mieux comprendre pourquoi.
| action | événement user attendu |
|---|---|
| compte désactivé par l’administrateur | user_logged_out |
| compte anonymisé par l’administrateur | user_logged_out |
| l’utilisateur se déconnecte via le bouton « Se déconnecter de tous » | user_logged_out |
| — | — |
| ajouté à un groupe | user_updated |
| retiré d’un groupe | user_updated |
| niveau de confiance augmenté/diminué | user_updated |
| statut de modérateur accordé/révoqué | user_updated |
| statut d’administrateur accordé/révoqué | user_updated |
| non suspendu | user_updated |
| réduit au silence/non réduit au silence | user_updated |
- Le premier groupe de trois actions entraîne une déconnexion globale de l’utilisateur, invalidant toutes les sessions — mais contrairement à d’autres actions similaires (par exemple, l’utilisateur déconnecté par l’administrateur), ces trois actions ne génèrent pas d’événement user/user_logged_out (ou tout autre événement).
- L’ajout/retrait d’un utilisateur d’un groupe génère un événement group_user, mais pas un événement user. Les événements group_user ne sont pas très utiles par eux-mêmes, car ils ne contiennent que les identifiants numériques internes des groupes et des utilisateurs. D’autre part, l’enregistrement
"user"envoyé lors d’un événement user contient des informations très utiles pour tous les groupes auxquels un utilisateur appartient, y compris les noms des groupes et les détails sur les relations de l’utilisateur avec les groupes. - Lorsqu’un niveau de confiance d’un utilisateur est augmenté, un événement user_promoted est émis, qui contient des données très similaires, mais pas tout à fait identiques, à un événement user. Lorsqu’un niveau de confiance d’un utilisateur est diminué, aucun événement similaire n’est émis du tout.
- Aucun événement user n’est émis lorsque le statut de modérateur ou d’administrateur change. (Il y a des preuves indirectes spécifiques à l’utilisateur des actions d’octroi via des événements group_user; il n’y a aucune preuve spécifique à l’utilisateur des actions de révocation.)
- La suspension d’un utilisateur émet un événement user/user_logged_out (avec les champs
"suspended_reason"et"suspended_till"indiquant la suspension)… mais aucun événement n’est émis lorsqu’un utilisateur est désupprimé. Aucun événement n’est émis lorsqu’un utilisateur est réduit au silence ou non.
L’une de ces omissions est-elle intentionnelle ?
Ma pensée générale est : « Si les données dans l’enregistrement "user" d’un événement user ont changé, alors un événement user devrait être émis. » Cela englobe probablement plus de situations qui n’évoquent actuellement pas d’événements. Cependant, les quelques éléments que j’ai répertoriés dans le tableau ci-dessus sont ceux qui m’importent le plus pour le moment, car ils impliquent tous des changements dans le statut d’autorisation d’un utilisateur.