Ah certo, eu negligenciei a parte “usuário”
desculpe
Não é muito diferente usar a configuração do usuário, você só precisaria alterar as duas primeiras constantes para referenciar o usuário:
// configura a variável de usuário e destino:
const user = api.getCurrentUser()
const target = user?.user_option?.external_links_in_new_tab ? "_blank" : ""
e então todo o resto seria o mesmo.
Se isso fosse funcionar mais como o core, verificaríamos se o usuário existe e, se não existir, recorreríamos à configuração do site:
// configura as variáveis de usuário, siteSettings e destino:
const user = api.getCurrentUser()
const siteSettings = api.container.lookup('site-settings:main');
let target = siteSettings.default_other_external_links_in_new_tab ? "_blank" : "";
if (user) { // se o usuário existir, defina o destino com base na opção do usuário
target = user.user_option?.external_links_in_new_tab ? "_blank" : ""
}
// modifique a instrução if onde o link é criado para usar a variável de destino:
if (userFields && userFields[userFieldId]) {
const url = "http://myawesomewebsite.com/user/" + userFields[userFieldId];
const link = `<a href="${url}" target="${target}">${url}</a>`;
return Ember.Object.create({ link, name: externalUserIdField.get('name') });
} else {
return null;
}