Existe uma maneira de acessarmos o external_id do registro SSO de outro usuário?

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.

Isso é possível e como?

Eu acho que você quer um plugin que adicione o external_id ao serializador de usuário.

Algo como:

  add_to_serializer(:user, :external_id) do
     object.external_id
  end
3 curtidas

Eu acho que seria algo como:

# 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:

3 curtidas

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.

1 curtida

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