La notificación reclama X usuarios para aprobación, pero no se encuentra ninguno

Parece un error, pero no puedo ver cómo reproducirlo.

Recibo una notificación de MP (mensaje privado) que dice:

Pero cuando hago clic en el enlace de revisión, no hay usuarios pendientes. En /admin/users veo algunos usuarios que no han validado sus direcciones de correo electrónico.

No puedo decir si la notificación está produciendo el número incorrecto, o si de alguna manera existen usuarios esperando aprobación que no aparecen al buscarlos, o si de alguna manera los usuarios que no han validado su correo electrónico se cuentan como pendientes para las notificaciones pero no para la aprobación.

3 Me gusta

No ser la Sra. Obvia, pero ¿está allow_new_registrations desmarcada por casualidad? Claramente tienes habilitada la configuración must_approve_users y no estoy segura de cómo se ve afectada si el registro está deshabilitado. :thinking: Pensaría que la configuración de registro anularía cualquier creación de cuenta y la deshabilitaría. No, eso tampoco tiene sentido…

[cita=“Lilly, post:2, topic:262853, username:Lilly”]
¿Por casualidad allow_new_registrations no está desmarcado?
[/cita]

Es casi seguro que es algo obvio, así que agradezco tu ayuda.

Sí, ambos están marcados. Algunas personas se están registrando y siendo aprobadas. Es solo que el número que se dice que está esperando no coincide con el número que se dice en la notificación. Me dijo 5, y solo había habido 2 en los últimos días.

1 me gusta

muy extraño de hecho. suena como si algo en el registro de usuario fuera rechazado después de que se envía la solicitud de aprobación (contada) para su revisión…

3 Me gusta

¿Hay usuarios revisados cuando muestras todos los elementos revisados, o tal vez desde los registros del personal? :person_shrugging:

A menudo recibo mensajes privados/recordatorios de elementos revisables que ya están revisados, por lo que no aparece nada.

Asumí que el problema era que alguien más aprobaba a los usuarios antes de que yo (o el propietario del sitio) llegara a ellos, pero no puedo hacer que los números cuadren de esa manera).

¿Puede un usuario eliminar su cuenta antes de que se apruebe su registro?

¿Quizás? No lo creo, ya que necesitarían iniciar sesión para hacerlo y no pueden iniciar sesión hasta que sean aprobados (pero no revisé el código ni nada parecido).

Encontré este tema mientras buscaba antes de enviar un informe de error, así que lo agrego.

Resumen: la consulta para la notificación es incorrecta porque también cuenta a los usuarios rechazados.

Notificación: 16 usuarios esperando aprobación, haz clic en el enlace, solo ves 2.

La consulta utilizada para la notificación es 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, en mi caso, me da 16 usuarios

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

Al lanzar estos IDs en la cola de Revisables, obtengo 2 usuarios que realmente necesitan ser aprobados (estado 0) y 14 usuarios que ya han sido rechazados (estado 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 Me gusta

Alguien se quejó de esto hoy. Antes de encontrar todo esto, “resolví” el problema algo así:

malos=Usuario.donde(aprobado: falso);
malos.cada uno |usuario| pone "https://community.open-emr.org/admin/users/#{usuario.id}/#{usuario.username}"; fin;

Esto imprime las URL de administrador para todos los usuarios para que puedas aprobarlos o eliminarlos allí, creo.

Así que supongo que esto sigue siendo un error.

Oh, y entonces:

ids=malos.pluck(:id);
UsuarioRevisable.donde(tipo: 'UsuarioRevisable')
  .donde(id_objetivo: ids)
  .pluck(:id_objetivo, :estado)

Ahora devuelve algo como esto:

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

¿Quizás esos necesiten ser eliminados de UsuarioRevisable?

¿O tal vez solo eliminar a los usuarios?

2 Me gusta

Como moderador (no administrador), pude listar a los usuarios rechazados en la Cola de Revisión sin filtrar. Pero no encontrarlos en la sección de Usuarios ni acceder al editor de usuarios para usuarios rechazados desde la Cola de Revisión.

Estos son los parámetros del Filtro utilizados para la cola de Revisión para
https://gramps.discourse.group/review?additional_filters={}&sort_order=score&status=rejected&type=ReviewableUser

Por lo tanto, los moderadores deben poder encontrar usuarios “Rechazados” y con estado de aprobación “No” en las pestañas de Usuario o poder navegar al editor de usuarios desde la Cola de Revisión.

1 me gusta

Tengo el mismo problema y el soporte me envió aquí.

Soy el único personal o administrador de la cuenta, así que definitivamente se trata de este error y no de que otro administrador los haya aprobado.

Para las tres notificaciones, cuando hice clic en la cola de pendientes, no había ningún usuario esperando aprobación:

2 Me gusta

Recientemente activé la aprobación para nuevos usuarios. Recibo muy pocos; es un goteo, no una inundación. Es 100% reproducible que recibo la notificación, apruebo al usuario (normalmente lo apruebo) y luego, en aproximadamente un minuto, recibo una nueva notificación fantasma, con la cola de revisión realmente vacía de nuevo.

Parece que podría ser una condición de carrera.

Puedes usar una consulta del explorador de datos para encontrar al usuario que no aparece en la cola y aprobarlo directamente desde su página de administración.

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

Esto es lo que hice recientemente. También recibo este mensaje cada 7 días. Así que usé la consulta y este fue el resultado

Y lo verifiqué en la página de administración de usuarios

Pero todavía tengo que averiguar por qué el botón no funciona en mi caso. Aún no he tenido oportunidad de revisarlo.
Espero que el botón simplemente funcione para ti. Creo que hay más de un error que genera esas notificaciones pero sin usuarios en la cola. RGJ encontró algo sobre usuarios rechazados; yo reporté un caso en el que algunos usuarios existentes no son aprobados cuando la configuración está habilitada.

Quizás yo tuve algo similar, aunque tu búsqueda allí, que en tu caso coincide con un chat, en mi caso no coincide con nada más que con el usuario. La consulta del explorador

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

devolvió un usuario que de ninguna manera es nuevo:

Se unió el 9 de abril de 2021
Última publicación el 16 de abril
Visto el 16 de abril
Vistas 1308
Nivel de confianza: miembro

Hmm, no puedo aprobarlos manualmente. ¡Algo va mal!

Edición: No soy el único; mira este nuevo tema: El botón de aprobación en el perfil del usuario no funciona

detalles - fuera de tema aquí

En la interfaz de administración veo el botón Aprobar, lo presiono y no ocurre nada. En la consola del navegador veo un error 500.

requestedUrl:
“/admin/users/332/approve”
responseText:
"<!DOCTYPE html>\n<html>\n<head>\n <title>Vaya - Error 500</title>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n</head>\n<body>\n <h1>Vaya</h1>\n <p>El software que impulsa este foro de discusión encontró un problema inesperado. Pedimos disculpas por las molestias…

1 me gusta

Ahora estoy más preocupado porque estamos en el plan Starter, por lo que no puedo usar el Explorador de datos. Esto me hace pensar que quizás haya usuarios esperando aprobación, pero simplemente no puedo verlos.

Nunca he notado más usuarios de los que indicaba el título del mensaje que me notificó. El mensaje dice 1 y solo encontré 1.

Pero incluso sin Data Explorer, puedes encontrar usuarios no aprobados de manera eficiente. Puedes exportar tu directorio de usuarios usando el botón en la esquina superior derecha de /admin/users

y abrirlo con la herramienta que prefieras para buscar usuarios donde approved sea false. Usé Excel y puedes ver que realmente solo hay un usuario:

1 me gusta

@Moin, ¡qué útil! ¿Por qué no se me ocurrió antes?

¡Vaya! La exportación muestra que hay usuarios que no están aprobados, ¡aunque la página de revisión siga vacía:

Esto parece un error grave. Estos usuarios se habrían sentido extremadamente frustrados si nadie hubiera llegado a atenderlos. Antes de buscarlos para aprobarlos, le daré a Discourse la oportunidad de investigar el error por el cual no aparecen en /review.

1 me gusta

¿Se activaron sus cuentas? A veces también tengo unos pocos de esos usuarios porque aún no han verificado su dirección de correo electrónico. Tiene sentido que solo requieran aprobación del personal (=tiempo) después de confirmar el correo.