Eventi utente webhook mancanti: per design o per svista?

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.

5 Mi Piace