La notifica segnala X utenti per l'approvazione, ma non se ne trova nessuno viene trovato

Sembra un bug, ma non riesco a capire come riprodurlo.

Ricevo una notifica PM che dice:

Ma quando clicco sul link di revisione, non ci sono utenti in sospeso. In /admin/users vedo alcuni utenti che non hanno convalidato i loro indirizzi email.

Non riesco a capire se la notifica stia producendo il numero sbagliato, o se in qualche modo esistano utenti in attesa di approvazione che non vengono visualizzati quando li cerco, o se in qualche modo gli utenti che non hanno convalidato l’email vengano conteggiati come in sospeso per le notifiche ma non per l’approvazione.

3 Mi Piace

Non per fare la Signora Ovvio, ma per caso allow_new_registrations è deselezionato? Chiaramente hai abilitato l’impostazione must_approve_users e non sono sicuro di come ciò venga influenzato se la registrazione è disabilitata. :thinking: Penserei che l’impostazione di registrazione sovrascriverebbe comunque qualsiasi creazione di account e la disabiliterebbe. No, nemmeno questo ha senso…

[citazione=“Lilly, post:2, topic:262853, username:Lilly”]
Non vorrei sembrare ovvia, ma per caso allow_new_registrations è deselezionato?
[/citazione]

È quasi certamente qualcosa di ovvio, quindi accolgo con favore il tuo aiuto.

Sì, entrambi sono selezionati. Alcune persone si stanno registrando e vengono approvate. È solo che il numero di persone che si dice siano in attesa non corrisponde al numero indicato nella notifica. Mi diceva 5, e ce n’erano stati solo 2 negli ultimi giorni.

1 Mi Piace

davvero molto strano. sembra quasi che qualcosa nella registrazione dell’utente venga rifiutato dopo che la richiesta di approvazione è stata inviata (contata) per la revisione…

3 Mi Piace

Ci sono utenti verificati quando mostri tutti gli elementi verificati, o forse dai log dello staff? :person_shrugging:

Spesso ricevo messaggi privati/promemoria di elementi verificabili che sono già stati verificati, quindi non compare nulla.

Ho presunto che il problema fosse che qualcun altro avesse approvato gli utenti prima che io (o il proprietario del sito) ci arrivassimo, ma non riesco a far tornare i conti in quel modo).

Un utente può eliminare il proprio account prima che la sua registrazione venga approvata?

Forse? Non credo, perché dovrebbero accedere per farlo e non possono accedere finché non vengono approvati (ma non ho controllato il codice o altro di simile)

Ho trovato questo argomento durante la ricerca prima di segnalare un bug, quindi lo aggiungo.

TL;DR la query per la notifica è errata perché conta anche gli utenti rifiutati.

Notifica: 16 utenti in attesa di approvazione, fai clic sul link, ne vedi solo 2.

La query utilizzata per la notifica è questa

puts AdminUserIndexQuery.new(query: "pending", stats: false).find_users_query.to_sql

SELECT "users".* FROM "users"
WHERE (suspended_till IS NULL OR suspended_till <= '2023-11-13 11:05:23.225614')
AND "users"."approved" = FALSE
AND "users"."active" = TRUE
ORDER BY users.created_at DESC,users.username

che, nel mio caso, mi restituisce 16 utenti

[4479, 4472, 4456, 4446, 4443, 4430, 4302, 4291, 4206, 4199, 4178, 4168, 4131, 4061, 3677, 3642]

Inserendo questi ID nella coda di Reviewables, ottengo 2 utenti che devono effettivamente essere approvati (stato 0) e 14 utenti che sono già stati rifiutati (stato 2)

ReviewableUser.where(type: 'ReviewableUser')
  .where(target_id: ids)
  .pluck(:target_id, :status)

[[3642, 2], [3677, 2], [4061, 2], [4131, 2], [4168, 2],
[4178, 2], [4199, 2], [4206, 2], [4291, 2], [4302, 2],
[4430, 2], [4443, 2], [4446, 2], [4456, 2], [4472, 0], [4479, 0]]
2 Mi Piace

Qualcuno si è lamentato di questo oggi. Prima di trovare tutto questo, ho “risolto” il problema più o meno così:

bad=User.where(approved: false);
bad.each do |user| puts "https://community.open-emr.org/admin/users/#{user.id}/#{user.username}"; end;

Questo stampa gli URL di amministrazione per tutti gli utenti in modo che tu possa approvarli o eliminarli lì, credo.

Quindi immagino che questo sia ancora un bug.

Oh, e poi:

ids=bad.pluck(:id);
ReviewableUser.where(type: 'ReviewableUser')
  .where(target_id: ids)
  .pluck(:target_id, :status)

Ora restituisce qualcosa di simile a questo:

=> [[4610, "rejected"], [4527, "rejected"], [4643, "rejected"], [4648, "rejected"]]

Forse quelli devono essere eliminati da ReviewableUser?

O forse eliminare semplicemente gli utenti?

2 Mi Piace

Come moderatore (non amministratore), sono stato in grado di elencare gli utenti rifiutati nella coda di revisione non filtrata. Ma non trovarli nella sezione Utenti né accedere all’editor Utente per gli utenti rifiutati dalla coda di revisione.

questi sono i parametri del filtro utilizzati per la coda di revisione per
https://gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser

Quindi, o i moderatori devono essere in grado di trovare gli utenti “Rifiutati” e “Nessuno” stato di approvazione nelle schede Utente o essere in grado di navigare all’editor utente dalla coda di revisione.

1 Mi Piace

Ho lo stesso problema e sono stato indirizzato qui dall’assistenza.

Sono l’unico membro dello staff o amministratore dell’account, quindi si tratta sicuramente di questo bug e non di un altro amministratore che li ha approvati.

Per tutte e tre queste notifiche, quando ho fatto clic sulla coda in sospeso, non c’erano utenti in attesa di approvazione:

2 Mi Piace

Ho recentemente attivato l’approvazione per i nuovi utenti. Ne ricevo pochissimi: è una goccia, non un’inondazione. È al 100% riproducibile che ricevo la notifica, approvo l’utente (di solito lo approvo) e poi, nel giro di circa un minuto, ricevo una nuova notifica fantasma, con la coda di revisione effettivamente appena svuotata.

Sembra forse una condizione di gara.

Puoi utilizzare una query dell’esploratore di dati per trovare l’utente che non vedi nella coda e approvarlo direttamente dalla sua pagina di amministrazione.

SELECT id as user_id
FROM users
WHERE approved = false
AND active = true

È quello che ho fatto recentemente. Ricevo anche questo messaggio ogni 7 giorni. Quindi ho usato la query e questo è stato il risultato

E l’ho verificato nella pagina di amministrazione degli utenti

Ma devo ancora scoprire perché il pulsante non funziona nel mio caso. Non ho ancora avuto l’opportunità di esaminarlo.
Spero che il pulsante funzioni per te. Penso che ci sia più di un bug che provoca queste notifiche senza utenti nella coda. RGJ ha trovato qualcosa relativo agli utenti rifiutati, ho segnalato un caso in cui alcuni utenti esistenti non vengono approvati quando l’impostazione è abilitata.

Forse ho avuto qualcosa di simile, anche se la tua ricerca, che nel tuo caso corrisponde a una chat, nel mio caso non corrisponde a nulla tranne l’utente. La query dell’esploratore

SELECT id as user_id
FROM users
WHERE approved = false
AND active = true

ha restituito un utente, che non è assolutamente nuovo:

Iscritto il 9 aprile 2021
Ultimo post il 16 aprile
Visto il 16 aprile
Visualizzazioni 1308
Livello di fiducia: membro

Hmm, non riesco ad approvarli manualmente. C’è qualcosa che non va!

Modifica: Non sono l’unico a riscontrare il problema - vedi questa nuova discussione: Il pulsante Approva nel profilo dell’utente non funziona

dettagli - OT qui

Nell’interfaccia di amministrazione vedo il pulsante Approva, lo premo, ma non succede nulla. Nella console del browser vedo un errore 500.

requestedUrl:
“/admin/users/332/approve”
responseText:
"<!DOCTYPE html>\n<html>\n<head>\n <title>Ops - Errore 500</title>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n</head>\n<body>\n <h1>Ops</h1>\n <p>Il software che alimenta questo forum ha incontrato un problema imprevisto. Ci scusiamo per l’inconveniente…

1 Mi Piace

Ora sono più preoccupato perché siamo nel piano Starter, quindi non posso usare Data Explorer. Questo mi fa pensare che forse ci sono utenti in attesa di approvazione, ma semplicemente non riesco a vederli.

Non ho mai notato più utenti di quanti indicasse il titolo del messaggio di notifica. Il messaggio dice 1 e ne ho trovato solo 1.

Ma anche senza Data Explorer, puoi trovare in modo efficiente gli utenti non approvati. Puoi esportare la tua directory utenti utilizzando il pulsante in alto a destra di /admin/users.

Poi apri il file con lo strumento che preferisci per verificare gli utenti in cui approved è false. Ho usato Excel e puoi vedere che c’è davvero solo un utente:

1 Mi Piace

@Moin così utile, perché non ci ho pensato prima?

Dio mio, l’esportazione mostra che ci sono utenti non approvati! Anche se la pagina di revisione è ancora vuota:

Sembra un bug serio. Questi utenti sarebbero stati estremamente frustrati se nessuno li avesse mai raggiunti. Prima di cercarli per approvarli, darò a Discourse la possibilità di indagare sul bug per cui non compaiono in /review.

1 Mi Piace

I loro account sono stati attivati? Anche io ho a volte alcuni di quegli utenti perché non hanno ancora verificato l’indirizzo email. Ha senso che richiedano l’approvazione dello staff (=tempo) solo dopo aver confermato l’email.