Obter um objeto de usuário por nome de usuário ou ID em JavaScript

Is there any way to get a user object by username or id via javascript?

It is difficult to answer without some more context. You can always do this: (try it in the dev tools for Meta)

Discourse.User.findByUsername("David_Taylor").then(function(user){
   console.log("User Found", user);
});

But that will result in an additional request to the server, which may not be necessary.

What are you trying to achieve?

Thanks very much. I am trying to get a list of usersnames with certain custom field attributes. As you correctly pointed out, it will result in many additional calls from the API.

Is it possible to achieve what I intend more gracefully?

If this is just for administrators, you might be able to utilise the data-explorer plugin. If you wanted this to work for all users, you would probably need to create a plugin which adds a new HTTP endpoint.

Estou trabalhando em um dos bugs relacionados ao plugin de eventos, onde a implementação atual dependia de nomes de usuário. Embora seja um caso de borda, os nomes de usuário podem mudar, o que cria a necessidade de poder obter um usuário pelo seu id.

Acho que deveria haver um método similar no núcleo para encontrar um usuário por id.

Tenho interesse em saber sua opinião sobre isso.

Seu plugin deve ser capaz de atualizar as referências de nome de usuário quando um nome de usuário muda ou adicionar as rotas e serializadores necessários para buscar os dados.

Vou verificar se é possível fazer isso no cenário atual.

Sim. Vou precisar adicionar um método ao UsersController para encontrar um usuário por ID e adicionar um método no modelo User do lado do Ember para chamar esse novo método do controlador.