Ci sono una serie di azioni che mi aspetterei (e vorrei) generassero eventi webhook user, ma non lo fanno. Prima di segnalare bug (o inviare PR), vorrei farmi un’idea migliore del perché sia così.
| azione | evento user atteso |
|---|---|
| account disattivato dall’amministratore | user_logged_out |
| account anonimizzato dall’amministratore | user_logged_out |
| l’utente effettua il logout tramite il pulsante “Esci da tutti” | user_logged_out |
| — | — |
| aggiunto a un gruppo | user_updated |
| rimosso da un gruppo | user_updated |
| livello di fiducia aumentato/diminuito | user_updated |
| concesso/revocato lo stato di moderatore | user_updated |
| concesso/revocato lo stato di amministratore | user_updated |
| non sospeso | user_updated |
| silenziato/non silenziato | user_updated |
- Il primo gruppo di tre sono tutte azioni che comportano un logout globale e invalidazione di tutte le sessioni dell’utente, ma a differenza di altre azioni simili (ad es. utente disconnesso dall’amministratore), queste tre non generano un evento user/user_logged_out (o qualsiasi altro evento).
- Essere aggiunto/rimosso da un gruppo genera un evento group_user, ma non un evento user. Gli eventi group_user non sono molto utili da soli, poiché contengono solo gli ID numerici interni di gruppi e utenti. D’altra parte, il record
"user"inviato in occasione di un evento user contiene informazioni molto utili per tutti i gruppi a cui appartiene un utente, inclusi i nomi dei gruppi e i dettagli sulle relazioni dell’utente con i gruppi. - Quando il livello di fiducia di un utente viene aumentato, viene emesso un evento user_promoted, che contiene dati molto simili, ma non identici, a un evento user. Quando il livello di fiducia di un utente viene diminuito, non viene emesso alcun evento simile.
- Nessun evento user viene emesso quando cambiano gli stati di moderatore o amministratore. (Ci sono prove indirette specifiche dell’utente per le azioni di concessione tramite eventi group_user; non ci sono prove specifiche dell’utente per le azioni di revoca.)
- La sospensione di un utente emette un evento user/user_logged_out (con campi
"suspended_reason"e"suspended_till"che indicano la sospensione), ma non c’è alcun evento quando un utente viene riammesso. Non vengono emessi eventi in assoluto quando un utente viene silenziato o non silenziato.
Qualcuna di queste omissioni è intenzionale?
Il mio pensiero generale è “Se i dati in un record "user" di un evento user sarebbero cambiati, allora dovrebbe essere emesso un evento user”. Questo probabilmente comprende più situazioni che attualmente non evocano eventi. Tuttavia, quelle poche che ho elencato nella tabella sopra sono quelle che mi interessano di più al momento perché tutte comportano modifiche allo stato di autorizzazione di un utente.