Não temos problemas em acessar o external_id do registro SSO do usuário atualmente logado usando a abordagem abaixo:
api.getCurrentUser().external_id
No entanto, temos alguns botões/links quando o usuário atualmente logado está visualizando o resumo do perfil de outra pessoa (por exemplo, Pessoa X). Esse external_id é o identificador principal usado em nosso site, que usaremos para alguns redirecionamentos e ações de nosso site. Usar a API de usuário administrador funciona, mas obviamente não para contas de usuário não administrador.
# no bloco after_initialize do plugin
after_initialize do
# Editar: provavelmente também verificar para garantir que `SiteSetting.enable_discourse_connect` retorne `true`
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
O external_id é uma propriedade do single_sign_on_record e não do user. Lembro-me disso porque tive algo a ver com:
Obrigado a todos pelas contribuições, acabamos fazendo isso por meio de campos de usuário personalizados que são sincronizados de nosso aplicativo durante o login.