Non abbiamo problemi ad accedere all’external_id dal record SSO dell’utente attualmente connesso utilizzando il seguente approccio:
api.getCurrentUser().external_id
Tuttavia, abbiamo alcuni pulsanti/link quando l’utente attualmente connesso sta visualizzando il riepilogo del profilo di un altro utente (ad esempio, Persona X). Questo external_id è l’identificatore primario utilizzato sul nostro sito web che utilizzeremo per alcuni reindirizzamenti e azioni dal nostro sito web. L’utilizzo dell’API dell’utente amministratore funziona, ma ovviamente non per gli account utente non amministratori.
# nel blocco after_initialize del plugin
after_initialize do
# Modifica: probabilmente anche verificare che `SiteSetting.enable_discourse_connect` restituisca `true`
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
L’external_id è una proprietà di single_sign_on_record non dell’user. Ricordo questo perché ho avuto a che fare con:
Grazie a tutti per i contributi, alla fine abbiamo fatto così tramite campi utente personalizzati che vengono sincronizzati dalla nostra applicazione durante l’accesso.