Avatar is synching only on creation

Hello there!

I’m using this plugin to sync user from a django site, but the avatar is sync only on creation. If user change it in django, it is not sync in discourse.

In fact, in Discourse managed_authenticator.rb, the retrieve_avatar return early if the user already have a custom avatar setup:

  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

Did I missed something or discourse-openid-connect can not update avatar on login?

I also have question for the “website”, “location” and “bio_raw”. DiscourseConnect sync it on login, can openidconnect also do it? All are supported in the oidc claims

cheers!

Same here, with v3.1.3…

Yup been battling this one myself on standardizing avatars.

I had hoped to use a custom picture claim from our IdP (Entra) to include the URL to a avatar host that doesn’t have the issue w bearer token auth for download_avatar_from_url like the generic graph.microsoft one does Testing though seems like the plugin stores /userinfo and ignores the JWT picture claim so a bit of a dead end anyways.