Notificação alega X usuários para aprovação, mas nenhum é encontrado

Isso parece um bug, mas não consigo ver como reproduzi-lo.

Recebo uma notificação PM que diz:

Mas quando clico no link de revisão, não há usuários pendentes. Em /admin/users, vejo alguns usuários que não validaram seus endereços de e-mail.

Não consigo dizer se a notificação está produzindo o número errado, ou se de alguma forma existem usuários aguardando aprovação que não estão aparecendo ao procurá-los, ou se de alguma forma usuários que não validaram o e-mail estão sendo contados como pendentes para notificações, mas não para aprovação.

3 curtidas

Não que eu queira ser óbvia, mas por acaso o allow_new_registrations está desmarcado? Claramente você tem a configuração must_approve_users habilitada e não tenho certeza de como isso é afetado se o registro estiver desabilitado. :thinking: Eu pensaria que a configuração de registro substituiria qualquer criação de conta, mas a desabilitaria. Não, isso também não faz sentido…

É quase certo que seja algo óbvio, então agradeço sua ajuda.

Sim, ambos estão marcados. Algumas pessoas estão sendo registradas e aprovadas. É apenas que o número que alegou estar esperando não corresponde ao número alegado na notificação. Disse-me 5, e só houve 2 nos últimos dias.

1 curtida

muito estranho mesmo. parece algo no registro do usuário que está sendo rejeitado após a solicitação de aprovação ser enviada (contada) para revisão…

3 curtidas

Existem usuários revisados quando você mostra todos os itens revisados, ou talvez nos logs da equipe? :person_shrugging:

Frequentemente recebo mensagens privadas/lembretes de itens revisáveis que já foram revisados, então nada aparece.

Eu assumi que o problema era que outra pessoa aprovou os usuários antes que eu (ou o proprietário do site) chegasse a eles, mas não consigo fazer os números baterem dessa forma).

Um usuário pode excluir sua conta antes que o registro seja aprovado?

Talvez? Acho que não, pois eles precisariam fazer login para fazer isso e eles não podem fazer login até serem aprovados (mas eu não verifiquei o código nem nada parecido)

Encontrei este tópico ao pesquisar antes de registrar um bug, então estou adicionando a ele.

Resumo: A consulta para a notificação está errada porque conta os usuários rejeitados também.

Notificação: 16 usuários aguardando aprovação, clique no link, veja apenas 2.

A consulta usada para a notificação é esta

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

que, no meu caso, me dá 16 usuários

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

Jogando esses IDs na fila do Reviewables, obtenho 2 usuários que realmente precisam ser aprovados (status 0) e 14 usuários que já foram rejeitados (status 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 curtidas

Alguém reclamou disso hoje. Antes de encontrar tudo isso, eu “resolvi” o problema mais ou menos assim:

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

Isso imprime as URLs de administrador para todos os usuários para que você possa aprová-los ou excluí-los lá, eu acho.

Então, acho que isso ainda é um bug.

Ah, e então:

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

Agora retorna algo como isto:

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

Então talvez esses precisem ser excluídos de ReviewableUser?

Ou talvez apenas excluir os usuários?

2 curtidas

Como moderador (não administrador), consegui listar os usuários rejeitados na Fila de Revisão não filtrada. Mas não os encontrei na seção Usuário nem acessei o editor de usuários para usuários rejeitados a partir da Fila de Revisão.

Estes são os parâmetros de Filtro usados para a fila de Revisão para
https://gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser

Portanto, os moderadores precisam ser capazes de encontrar usuários “Rejeitados” e com status de aprovação “Não” nas abas de Usuário ou ser capazes de navegar para o editor de usuários a partir da Fila de Revisão.

1 curtida