Y a-t-il un moyen d'accéder à l'external_id du dossier SSO d'un autre utilisateur ?

Nous n’avons aucun problème à accéder à external_id à partir de l’enregistrement SSO de l’utilisateur actuellement connecté en utilisant l’approche suivante :

api.getCurrentUser().external_id

Cependant, nous avons des boutons/liens lorsque l’utilisateur actuellement connecté consulte le résumé de profil d’une autre personne (par exemple, Personne X). Cet external_id est l’identifiant principal utilisé sur notre site Web, que nous utiliserons pour certaines redirections et actions à partir de notre site Web. L’utilisation de l’API d’utilisateur administrateur fonctionne, mais évidemment pas pour les comptes d’utilisateurs non administrateurs.

Est-ce possible et comment ?

Je pense que vous voulez un plugin qui ajoute l’external_id au sérialiseur utilisateur.

Quelque chose comme :

  add_to_serializer(:user, :external_id) do
     object.external_id
  end
3 « J'aime »

Je pense que ce serait quelque chose comme :

# dans le bloc after_initialize du plugin
after_initialize do

# Modifier : vérifier probablement aussi que `SiteSetting.enable_discourse_connect` renvoie `true`
  add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end

L’external_id est une propriété du single_sign_on_record et non de l’user. Je m’en souviens car j’ai eu quelque chose à voir avec :

3 « J'aime »

Merci à tous pour vos contributions, nous avons fini par le faire via des champs utilisateur personnalisés qui sont synchronisés depuis notre application lors de la connexion.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.