Avatar si sincronizza solo alla creazione

Ciao!

Sto usando questo plugin per sincronizzare gli utenti da un sito Django, ma l’avatar viene sincronizzato solo alla creazione. Se l’utente lo cambia in Django, non viene sincronizzato in Discourse.

Infatti, in Discourse managed_authenticator.rb, retrieve_avatar ritorna presto se l’utente ha già un avatar personalizzato impostato:

  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

Mi sono perso qualcosa o discourse-openid-connect non può aggiornare l’avatar al login?

Ho anche una domanda per “website”, “location” e “bio_raw”. DiscourseConnect li sincronizza al login, può farlo anche openidconnect? Sono tutti supportati nelle oidc claims.

Saluti!

2 Mi Piace

Anche qui, con la v3.1.3…

Sì, ho combattuto anch’io con questo problema per standardizzare gli avatar.

Speravo di utilizzare una “custom picture claim” dal nostro IdP (Entra) per includere l’URL di un host di avatar che non ha il problema con l’autenticazione del token bearer per scaricare_avatar_da_url come fa quello generico di graph.microsoft. Tuttavia, i test sembrano indicare che il plugin memorizza /userinfo e ignora la “picture claim” JWT, quindi è comunque un vicolo cieco.

Mi sono appena reso conto che dovrei probabilmente pubblicarlo qui, ma ho inviato una PR per questo: FEATURE: managed auth can override avatars by lewisakura · Pull Request #34123 · discourse/discourse · GitHub

2 Mi Piace

Grazie per il contributo @lewisakura, la tua PR è stata unita!

1 Mi Piace

Questo argomento è stato chiuso automaticamente dopo 12 giorni. Non sono più consentite nuove risposte.