Existe uma rota para acessar um perfil de usuário público usando o ID dele?
Tenho conhecimento de: https://meta.discourse.org/u/{username}/summary
E quero: https://meta.discourse.org/u/{user-id}/summary
Objetivo: Quero que os perfis no meu site principal vinculem aos perfis no meu site Discourse. O problema é que, inicialmente, não estava usando SSO, então os nomes de usuário não são todos consistentes entre meus dois sites e estão sendo atualizados conforme o usuário faz logout/login. Tentei “limpar” os IDs de usuários antigos apenas para perceber que não há um endpoint para que eu atualize os nomes de usuário (você só pode atualizar e-mail e avatar).
Como os nomes de usuário estão mudando, armazenei o id em vez disso, mas agora percebo que não consigo gerar diretamente uma URL para acessar o perfil dele com o ID. Eu teria que fazer solicitações web adicionais, o que estou tentando evitar. Caso contrário, acho que teria que acessar o endpoint by-external uma vez para obter o nome de usuário, mas uma redireção seria ideal.
Thanks but no, I want any user viewing a profile on my main site, to be able to click a link on that page to take them to the corresponding profile on the discourse page.
It would be great if there were a PUT endpoint for username. The use case is sites like mine which transitioned to SSO, to get all the usernames synced. Then my plan A would have just worked.
My fallback plan I think is going to be to add another column to store discourse_username also in my DB along with discourse_id. This way, I can directly to their profile with username. The downside is that this username can change. So I need to daily scan all users to re-sync.
You can make a POST request to /admin/users/sync_sso for this. If you are using the Discourse API gem, you can use the gem’s sync_sso method for this. If you are not using the gem, see Sync DiscourseConnect user data with the sync_sso route for details about setting up the request.