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