Cómo aprovechar la configuración "Abrir todos los enlaces externos en una nueva pestaña" en las personalizaciones del sitio

Ah, claro, pasé por alto la parte de “usuario” :sweat_smile: 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;
}
2 Me gusta