Ah, claro, pasé por alto la parte de “usuario”
lo siento
No es muy diferente usar la configuración del usuario, solo tendrías que cambiar las dos primeras constantes para que hagan referencia al usuario:
// configurar las variables de usuario y destino:
const user = api.getCurrentUser()
const target = user?.user_option?.external_links_in_new_tab ? "_blank" : ""
y luego todo lo demás sería igual.
Si esto funcionara más como el núcleo, verificaríamos si el usuario existe y, si no, recurriríamos a la configuración del sitio:
// configurar las variables de usuario, siteSettings y 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) { // si el usuario existe, establecer el destino según la opción del usuario
target = user.user_option?.external_links_in_new_tab ? "_blank" : ""
}
// modificar la declaración if donde se crea el enlace para usar la variable 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;
}