Non ho trovato un modo per riprodurre questo problema, ma nell’ultimo mese ho notato due casi in cui un utente è stato apparentemente disattivato (come visto dai log delle azioni dello staff) ma non è stato effettivamente disattivato (l’utente poteva ancora accedere).
Ad esempio, questo è stato “disattivato” 29 giorni fa, ma è stato in grado di inviarmi un messaggio privato oggi (le uniche altre azioni dello staff dopo la disattivazione sono “controlla email”)
Questo è l’altro (un membro dello staff diverso è stato in grado di “disattivare” lo stesso utente di nuovo 4 ore dopo senza una precedente riattivazione):
Questo sta ancora accadendo sporadicamente. Ad esempio, questo utente è stato inizialmente “disattivato” il 23 agosto, ma me ne sono accorto solo ora che era ancora attivo e l’ho effettivamente disattivato.
Come può un utente essere disattivato due volte (senza una riattivazione nel frattempo)?
Ho un’attività giornaliera che esegue una query per verificare questa situazione. Ieri non ha restituito nulla e oggi solo questo utente, quindi sembra che l’utente sia stato correttamente disattivato il 23 agosto, ma in qualche modo è stato riattivato ieri (senza che fosse registrato da nessuna parte).
È possibile attivare un utente (tramite API o interfaccia utente) senza lasciare traccia? Presumo che ciò possa accadere solo modificando direttamente il database, cosa che sono certo di non aver fatto (sono l’unico amministratore).
Questo può succedere. Tutto ciò che un utente disattivato deve fare per riattivare il proprio account è tentare di accedere al sito, quindi fare clic sul link nell’email di attivazione che gli viene inviata.
Quando un utente disattivato tenta di accedere, vedrà questa modale:
Dopo aver fatto clic sul link nell’email, l’utente accederà a Discourse.
Questo è stato il comportamento per quanto posso ricordare. Non penso che sia un bug, ma potrei sbagliarmi. Inviare un’email “Conferma il tuo nuovo account” a un utente che ha già un account sembra un po’ strano.
Modifica: per ottenere il comportamento che desideri, probabilmente dovresti “sospendere” l’utente invece di disattivarlo.