le notifiche "must approve users" vengono attivate in modo errato dagli utenti esistenti

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.

Cliccando sulla notifica vedo:

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?

2 Mi Piace

Ne soffri ancora?

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 :sweat:

2 Mi Piace

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’.


  1. Ho pochissime competenze di programmazione ↩︎

3 Mi Piace