Nelle ultime settimane, alcuni utenti problematici (bannati) hanno creato account con nomi utente offensivi/inappropriati. Per evitarlo, ho attivato l’impostazione “Lo staff deve approvare tutti i nuovi account utente prima che sia loro consentito l’accesso al sito” e richiede effettivamente l’approvazione per tutti i nuovi account.
Tuttavia, in modo piuttosto fastidioso, ogni poche ore vengo avvisato di “utenti in attesa di approvazione” per vecchi utenti che si sono iscritti mesi o addirittura anni fa, ben prima che questa impostazione fosse attivata.
Ci sono nuove registrazioni di utenti in attesa di approvazione (o rifiuto) prima che possano accedere a questo forum. Si prega di esaminarle.
… ma cliccando su “Si prega di esaminarle” si scopre che non ce ne sono:
Non ci sono elementi da esaminare.
Cercando nell’elenco admin/users/list/new, vedo che alcuni utenti sono effettivamente elencati come “non approvati”. Non riesco a trovare alcuna caratteristica comune tra questi utenti “non approvati” se non il fatto che tutti sono stati creati prima che l’impostazione venisse attivata. Alcuni di loro hanno “email primaria: Non verificata”, mentre altri sono verificati.
Ho provato ad approvare manualmente ciascuno di essi, ma devo scorrere diverse centinaia di “pagine” e non vedo un modo semplice per filtrare l’elenco per “non approvati”.
Esiste un modo rapido per contrassegnare tutti gli utenti esistenti come “approvati”? O almeno per impedire l’invio delle notifiche su questi vecchi utenti?
Alla fine ho stretto i denti e ho scorso l’intera lista di utenti (cercando manualmente quelli con "Approvato: No"), poi sono entrato nel profilo di ciascuno e li ho approvati individualmente
Ho notato lo stesso comportamento e penso di aver capito perché succede (non perché quegli utenti non compaiono nella coda di revisione, ma perché non sono mai stati approvati):
Per quanto capisco il codice[1] quando si abilita ‘must_approve_users’, la maggior parte degli utenti creati prima che l’impostazione fosse abilitata dovrebbe essere approvata:
Questo ha funzionato per la maggior parte dei miei utenti, ma alcuni non sono stati contrassegnati come approvati.
Query Data Explorer
SELECT
id as UserID, approved
FROM
users
ORDER BY id
UserID
Approved
1
true
3
true
…
…
8
true
10
false
11
false
12
false
13
true
Quando si guarda la tabella reviewables si può notare che gli utenti con un ID utente corrispondente all’ID di destinazione di un messaggio di chat non sono stati approvati.
Query Data Explorer
SELECT id, target_id, target_type
FROM reviewables
ORDER BY target_id
id
target_id
target_type
6
9
ChatMessage
7
10
ChatMessage
8
11
ChatMessage
9
12
ChatMessage
1
2901
Post
2
2909
Post
5
2991
Post
Penso che sia un bug che gli utenti non vengano approvati quando c’è un ID di destinazione corrispondente che ha un tipo di destinazione diverso da ‘user’.