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.
@Roman ¿quieres añadir este a tu lista? Lo veo útil para sitios con SSO.
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)
Lo revisaré. ¿Están estos usuarios esperando aprobación?
Aprobación + eliminación de usuarios marcados por spam.
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
, ya que recientemente experimentó algunos cambios relacionados con usuarios eliminados. @merefield, ¿qué opinas?
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.
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í:
¡Lo haré la próxima vez que ocurra! ![]()
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.
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.
Empujado: FIX: make code invoked when deleting users more robust · discourse/discourse-follow@b523b3a · GitHub ¡gracias!
Hemos fusionado una PR para añadir esta acción. Las opciones de confirmar, confirmar + eliminar y confirmar + suspender ahora están agrupadas:
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 ![]()
EDIT: cambié el enlace del plugin
Ese es un plugin central.
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)
Esos son Eventos. @fzngagan, ¿tienes alguna opinión al respecto?
Al hacer clic, me dirige al repositorio correcto.
Jaja, no, el problema se refiere a eliminar un usuario de la Cola de Revisión.
Esto no está relacionado con un plugin; es un archivo de biblioteca principal.
¿Por qué crees que Events está involucrado?


