Avatar solo se sincroniza en la creación

Hola.

Estoy usando este plugin para sincronizar usuarios de un sitio de Django, pero el avatar solo se sincroniza en la creación. Si el usuario lo cambia en Django, no se sincroniza en Discourse.

De hecho, en Discourse managed_authenticator.rb, retrieve_avatar retorna anticipadamente si el usuario ya tiene configurado un avatar personalizado:

  def retrieve_avatar(user, url)
    return unless user && url
    return if user.user_avatar.try(:custom_upload_id).present?
    Jobs.enqueue(:download_avatar_from_url, url: url, user_id: user.id, override_gravatar: false)
  end

¿Me he perdido algo o discourse-openid-connect no puede actualizar el avatar al iniciar sesión?

También tengo una pregunta sobre “website”, “location” y “bio_raw”. DiscourseConnect los sincroniza al iniciar sesión, ¿puede openidconnect también hacerlo? Todos son compatibles en las reclamaciones oidc.

¡Saludos!

2 Me gusta

Yo también, con la v3.1.3…

Sí, yo también he estado lidiando con esto para estandarizar avatares.

Esperaba usar una reclamación de imagen personalizada de nuestro IdP (Entra) para incluir la URL de un host de avatar que no tenga el problema con la autenticación de token de portador para descargar_avatar_desde_url como lo hace el genérico de graph.microsoft. Sin embargo, las pruebas parecen indicar que el plugin almacena /userinfo e ignora la reclamación de imagen JWT, por lo que de todos modos es un callejón sin salida.

Me acabo de dar cuenta de que probablemente debería publicar esto aquí, pero envié una PR para esto: FEATURE: managed auth can override avatars by lewisakura · Pull Request #34123 · discourse/discourse · GitHub

2 Me gusta

Gracias por tu contribución @lewisakura, ¡tu PR ahora está fusionado!

1 me gusta

Este tema se cerró automáticamente después de 12 días. Ya no se permiten nuevas respuestas.