Durante las últimas semanas, ciertos usuarios problemáticos (baneados) han estado creando cuentas con nombres de usuario ofensivos/inapropiados. Para evitar esto, he activado la configuración marcada “El personal debe aprobar todas las cuentas de usuario nuevas antes de que se les permita acceder al sitio” y, de hecho, requiere la aprobación de todas las cuentas nuevas.
Sin embargo, de manera bastante molesta, cada pocas horas también se me notifica sobre “usuarios esperando aprobación” para usuarios antiguos que se unieron hace meses o incluso años, mucho antes de que esta configuración se activara.
Hay nuevos registros de usuarios esperando ser aprobados (o rechazados) antes de que puedan acceder a este foro. Por favor, revíselos.
… pero al hacer clic en “Por favor, revíselos”, se muestra que no hay ninguno:
No hay elementos para revisar.
Buscando en la lista admin/users/list/new, veo que algunos usuarios figuran como “no aprobados”. No encuentro ninguna característica común entre estos usuarios “no aprobados”, excepto el hecho de que todos fueron creados antes de que se activara la configuración. Algunos de ellos tienen “correo electrónico principal: No verificado”, mientras que otros están verificados.
Intenté aprobar cada uno manualmente, pero necesito retroceder varios cientos de “páginas” y no veo una forma fácil de filtrar la lista por “no aprobados”.
¿Hay alguna forma rápida de marcar a todos los usuarios existentes como “aprobados”? ¿O al menos evitar que se envíen las notificaciones sobre estos usuarios antiguos?
Al final me armé de valor y me desplacé por toda la lista de usuarios (buscando manualmente los que tenían “Aprobado: No”), luego entré en el perfil de cada uno y los aprobé individualmente
Noté el mismo comportamiento y creo que descubrí por qué sucede esto (no por qué esos usuarios no aparecen en la cola de revisión, sino por qué no fueron aprobados en absoluto):
Según entiendo el código[1], cuando habilitas ‘must_approve_users’, la mayoría de los usuarios que se crearon antes de que se habilitara la configuración deberían ser aprobados:
Esto funcionó para la mayoría de mis usuarios, pero algunos no fueron marcados como aprobados.
Consulta de Data Explorer
SELECT
id as UserID, approved
FROM
users
ORDER BY id
UserID
Approved
1
true
3
true
…
…
8
true
10
false
11
false
12
false
13
true
Cuando miras la tabla reviewables, puedes notar que los usuarios con un ID de usuario que coincide con el target_id de un mensaje de chat no fueron aprobados.
Consulta de Data Explorer
SELECT id, target_id, target_type
FROM reviewables
ORDER BY target_id
id
target_id
target_type
6
9
ChatMessage
7
10
ChatMessage
8
11
ChatMessage
9
12
ChatMessage
1
2901
Post
2
2909
Post
5
2991
Post
Creo que es un error que los usuarios no sean aprobados cuando hay un target_id coincidente que tiene un target_type diferente de ‘user’.