Comentarios sobre la nueva cola de revisión (2019)

Oh, no me importaría en absoluto. Sería ideal que la acción principal del botón desplegable fuera ‘Eliminar usuario’ y que, al usar el menú desplegable, pudieras seleccionar ‘Suspender usuario’ en su lugar. De esta manera, suponiendo que la mayoría no sean configuraciones de SSO, no se añade trabajo adicional a ellos, pero para aquellos que sí se encuentren en esta situación, tendrían una forma rápida de suspender a un usuario en lugar de eliminarlo.

3 Me gusta

@Roman ¿quieres añadir este a tu lista? Lo veo útil para sitios con SSO.

7 Me gusta

Cuando eliminamos usuarios de la cola de revisión, aparece una ventana emergente con ‘404 Not Found’:

(Acabo de actualizar a la versión más reciente, pero el problema persiste)

3 Me gusta

Lo revisaré. ¿Están estos usuarios esperando aprobación?

3 Me gusta

Aprobación + eliminación de usuarios marcados por spam.

2 Me gusta

Acabo de darme cuenta de que también estoy administrando otro sitio donde esto no ocurre, y tengo la sospecha de que esto pueda estar relacionado con el Plugin Seguir :man:, ya que recientemente experimentó algunos cambios relacionados con usuarios eliminados. @merefield, ¿qué opinas?

1 me gusta

No tengo idea en esta etapa. ¿Puedes ser más específico? ¿Evidencia de registro?

Pestaña de red en el navegador: ¿cuál es la URL de ese 404?

El único problema (menor) con el Plugin actualmente (que yo sepa) es que debes eliminar las notificaciones asociadas si desinstalas el plugin (script en el OP del plugin). Eso no está relacionado con usuarios eliminados.

1 me gusta

Tampoco pude reproducir el problema en mi entorno local. El mensaje de error me hace pensar que el frontend está realizando una solicitud AJAX a un endpoint que no existe. @bartv ¿Podrías compartir la pestaña de red de tu navegador después de realizar la acción de eliminar?

Me gustaría saber si se ve así:

4 Me gusta

¡Lo haré la próxima vez que ocurra! :+1:

1 me gusta

El plugin parchea UserDestroyer, que se llama cuando realizas la acción de eliminar desde la cola de revisión. Esto parece sospechoso:

Si de alguna manera following_ids incluye un ID inválido, User#find lanzará una excepción y el usuario verá un mensaje de “404 Not Found”. Recomiendo usar User.find_by(id: ...) en su lugar.

No puedo decir si esto es lo que ocurrió en el sitio de @bartv sin revisar la base de datos, así que la próxima vez que ocurra, te recomiendo revisar los following_ids del usuario marcado.

4 Me gusta

Gracias. Es cierto y es un punto destacado muy útil.

Aún así, me gustaría que se confirmaran los registros y esa URL 404.

Probablemente haya incluso más formas de hacer esto más robusto.

4 Me gusta

Empujado: FIX: make code invoked when deleting users more robust · discourse/discourse-follow@b523b3a · GitHub ¡gracias!

3 Me gusta

Hemos fusionado una PR para añadir esta acción. Las opciones de confirmar, confirmar + eliminar y confirmar + suspender ahora están agrupadas:

4 Me gusta

Eliminé el plugin Follow y mi problema persistió. En el registro de Rails veo:

Started PUT "/review/6793/perform/reject_user_block?version=0" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by ReviewablesController#perform as */*
  Parameters: {"version"=>"0", "reviewable_id"=>"6793", "action_id"=>"reject_user_block"}
Job exception: undefined method `strip' for nil:NilClass

  Rendering text template
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Started GET "/t/global-variables/331828" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by TopicsController#show as HTML
  Parameters: {"slug"=>"global-variables", "topic_id"=>"331828"}
Completed 404 Not Found in 292ms (ActiveRecord: 0.0ms | Allocations: 124598)
ActiveRecord::RecordNotFound (Couldn't find all Topics with 'id': (1185852, 1185853, 1186324, 1186929, 1191089) [WHERE ("topics"."deleted_at" IS NULL)] (found 4 results, but was looking for 5).)
lib/plugin/instance.rb:393:in `block in on'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/user.rb:1567:in `trigger_user_destroyed_event'
app/models/reviewable.rb:353:in `perform'
app/controllers/reviewables_controller.rb:192:in `perform'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

La línea ActiveRecord::RecordNotFound es interesante, ya que aparece cada vez que intento eliminar un usuario de la cola de revisión, y con exactamente los mismos IDs de tema.

Verifiqué los IDs de tema y todos corresponden a publicaciones que utilizan el plugin Events. Y efectivamente, uno de ellos ha sido eliminado. Me desconcierta por qué esta acción desde la cola de revisión verificaría estos temas.

@merefield parece que vuelvo a molestarlos, lo siento :slight_smile:

EDIT: cambié el enlace del plugin

3 Me gusta

Ese es un plugin central.

1 me gusta

Espera, estoy usando

git clone GitHub - angusmcleod/discourse-events: Allows you to manage events in Discourse · GitHub

¿No es ese el correcto (ya no)? (Creo que puede que haya enlazado a la página equivocada allí, lo estoy corrigiendo)

1 me gusta

Esos son Eventos. @fzngagan, ¿tienes alguna opinión al respecto?

3 Me gusta

Al hacer clic, me dirige al repositorio correcto.

1 me gusta

Jaja, no, el problema se refiere a eliminar un usuario de la Cola de Revisión.

4 Me gusta

Esto no está relacionado con un plugin; es un archivo de biblioteca principal.

¿Por qué crees que Events está involucrado?

3 Me gusta