La notification indique X utilisateurs en attente d'approbation, mais aucun n'est trouvé

Cela ressemble à un bug, mais je ne vois pas comment le reproduire.

Je reçois une notification PM qui dit :

Mais lorsque je clique sur le lien d’examen, il n’y a aucun utilisateur en attente. Dans /admin/users, je vois des utilisateurs qui n’ont pas validé leur adresse e-mail.

Je ne peux pas dire si la notification produit le mauvais nombre, ou s’il existe d’une manière ou d’une autre des utilisateurs en attente d’approbation qui ne s’affichent pas lors de la recherche, ou si d’une manière ou d’une autre des utilisateurs qui n’ont pas validé leur e-mail sont comptés comme en attente pour les notifications mais pas pour l’approbation.

3 « J'aime »

Pour ne pas être Madame Évidence, mais est-ce que allow_new_registrations est décoché par hasard ? Clairement, vous avez le paramètre must_approve_users activé et je ne suis pas sûr de la façon dont cela est affecté si l’inscription est désactivée. :thinking: Je penserais que le paramètre d’inscription outrepasserait toute création de compte et la désactiverait. Non, cela n’a pas de sens non plus…

C’est presque certainement quelque chose d’évident, donc je vous remercie de votre aide.

Oui, ces deux options sont cochées. Certaines personnes sont enregistrées et approuvées. C’est juste que le nombre indiqué comme en attente ne correspond pas au nombre indiqué dans la notification. Il m’a dit 5, et il n’y en avait eu que 2 ces derniers jours.

1 « J'aime »

très étrange en effet. cela ressemble à quelque chose dans l’enregistrement de l’utilisateur qui est rejeté après que la demande d’approbation est envoyée (comptée) pour examen…

3 « J'aime »

Y a-t-il des utilisateurs examinés lorsque vous affichez tous les éléments examinés, ou peut-être à partir des journaux du personnel :person_shrugging ?

Je reçois souvent des MP/rappels d’éléments examinables qui sont déjà examinés, donc rien ne s’affiche.

J’ai supposé que le problème était que quelqu’un d’autre avait approuvé les utilisateurs avant que moi (ou le propriétaire du site) ne m’en occupe, mais je n’arrive pas à faire correspondre les chiffres de cette façon.

Un utilisateur peut-il supprimer son compte avant que son inscription ne soit approuvée ?

Peut-être ? Je ne pense pas, car ils devraient se connecter pour le faire et ils ne peuvent pas se connecter tant qu’ils ne sont pas approuvés (mais je n’ai pas vérifié le code ou quoi que ce soit de ce genre)

J’ai trouvé ce sujet en cherchant avant de signaler un bug, donc je l’ajoute.

TL;DR la requête pour la notification est incorrecte car elle compte les utilisateurs rejetés.

Notification : 16 utilisateurs en attente d’approbation, cliquez sur le lien, ne voyez que 2.

La requête utilisée pour la notification est la suivante :

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

ce qui, dans mon cas, me donne 16 utilisateurs :

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

En lançant ces identifiants dans la file d’attente des éléments révisables, je trouve 2 utilisateurs qui doivent réellement être approuvés (statut 0) et 14 utilisateurs qui ont déjà été rejetés (statut 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 « J'aime »

Quelqu’un s’est plaint de cela aujourd’hui. Avant de trouver tout cela, j’ai “résolu” le problème un peu comme ceci :

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

Cela imprime les URL d’administration pour tous les utilisateurs afin que vous puissiez ensuite les approuver ou les supprimer là-bas, je pense.

Donc, je suppose que c’est toujours un bug.

Oh, et puis :

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

Retourne maintenant quelque chose comme ceci :

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

Peut-être faut-il supprimer ceux de ReviewableUser ?

Ou peut-être simplement supprimer les utilisateurs ?

2 « J'aime »

En tant que modérateur (pas administrateur), j’ai pu lister les utilisateurs rejetés dans la file d’attente de révision non filtrée. Mais je n’ai pas pu les trouver dans la section Utilisateurs ni accéder à l’éditeur d’utilisateurs pour les utilisateurs rejetés depuis la file d’attente de révision.

Voici les paramètres de filtre utilisés pour la file d’attente de révision pour
https://gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser

Donc, soit les modérateurs doivent pouvoir trouver les utilisateurs « Rejetés » et « Non » approuvés dans les onglets Utilisateurs, soit pouvoir naviguer vers l’éditeur d’utilisateurs depuis la file d’attente de révision.

1 « J'aime »