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 »

Je rencontre le même problème et le support m’a redirigé ici.

Je suis le seul membre du personnel ou administrateur du compte, il s’agit donc bien de ce bug et non d’un autre administrateur qui les aurait approuvés.

Pour les trois notifications, lorsque j’ai cliqué sur la file d’attente en attente, aucun utilisateur n’attendait d’être approuvé :

2 « J'aime »

J’ai récemment activé l’approbation pour les nouveaux utilisateurs. Je reçois très peu de demandes — c’est un filet d’eau, pas une inondation. Il est à 100 % reproductible que je reçoive la notification, que j’approuve l’utilisateur (généralement), puis qu’environ une minute plus tard, je reçoive une nouvelle notification fantôme, alors que la file d’examen est en réalité fraîchement vide.

On dirait peut-être une condition de course.

Vous pouvez utiliser une requête d’explorateur de données pour trouver l’utilisateur que vous ne voyez pas dans la file d’attente et l’approuver directement sur sa page d’administration.

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

C’est ce que j’ai fait récemment. Je reçois également ce message tous les 7 jours. J’ai donc utilisé la requête et voici le résultat :

Je l’ai ensuite vérifié sur la page d’administration des utilisateurs :

Mais je dois encore comprendre pourquoi le bouton ne fonctionne pas dans mon cas. Je n’ai pas encore eu l’occasion de m’y pencher.

J’espère que le bouton fonctionnera simplement pour vous. Je pense qu’il y a plus d’un bug qui provoque ces notifications sans qu’aucun utilisateur n’apparaisse dans la file d’attente. RGJ a trouvé quelque chose concernant les utilisateurs rejetés, et j’ai signalé un cas où certains utilisateurs existants ne sont pas approuvés lorsque le paramètre est activé.

Peut-être que j’ai rencontré quelque chose de similaire, bien que votre recherche, qui dans votre cas correspond à un chat, ne corresponde chez moi à rien d’autre que l’utilisateur. La requête de l’explorateur :

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

a retourné un utilisateur qui est loin d’être nouveau :

Rejoint le 9 avril 2021
Dernier message le 16 avril
Vu le 16 avril
Vues 1308
Niveau de confiance : membre

Hmm, je ne peux pas les approuver manuellement. Quelque chose ne va pas !

Édit : Je ne suis pas le seul – voyez ce nouveau sujet : Le bouton d’approbation sur le profil de l’utilisateur ne fonctionne pas

détails – Hors sujet ici

Dans l’interface d’administration, je vois le bouton Approuver, je le clique, rien ne se passe. Dans la console du navigateur, je vois une erreur 500.

requestedUrl:
“/admin/users/332/approve”
responseText:
"<!DOCTYPE html>\n<html>\n<head>\n <title>Oups – Erreur 500</title>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n</head>\n<body>\n <h1>Oups</h1>\n <p>Le logiciel alimentant ce forum de discussion a rencontré un problème inattendu. Nous nous excusons pour la gêne…

1 « J'aime »

Je suis maintenant plus inquiet car nous sommes sur le plan Starter, donc je ne peux pas utiliser l’explorateur de données. Cela me fait penser qu’il y a peut-être des utilisateurs en attente d’approbation, mais que je ne peux simplement pas les voir.

Je n’ai jamais constaté plus d’utilisateurs que ce que disait le titre du message de notification. Le message indique 1 et je n’en ai trouvé qu’un seul.

Mais même sans Data Explorer, vous pouvez trouver efficacement les utilisateurs non approuvés. Vous pouvez exporter votre annuaire d’utilisateurs en utilisant le bouton en haut à droite de /admin/users.

Ensuite, ouvrez-le avec l’outil de votre choix pour vérifier les utilisateurs où approved est false. J’ai utilisé Excel, et vous pouvez voir qu’il n’y a vraiment qu’un seul utilisateur :

1 « J'aime »

@Moin, si utile, pourquoi n’y ai-je pas pensé ?

Mon Dieu, l’export montre qu’il y a bien des utilisateurs qui ne sont pas approuvés ! Pourtant, la page de revue est toujours vide :

Cela semble être un bug sérieux. Ces utilisateurs auraient été extrêmement frustrés si personne ne s’était jamais occupé d’eux. Avant de les rechercher pour les approuver, je vais laisser Discourse l’occasion d’enquêter sur le bug qui fait qu’ils n’apparaissent pas dans /review.

1 « J'aime »

Leurs comptes ont-ils été activés ? J’ai moi aussi parfois quelques utilisateurs de ce type, car ils n’ont pas encore vérifié leur adresse e-mail. Il est logique qu’ils n’exigent l’approbation du personnel (=temps) qu’après la confirmation de l’e-mail.