Botones de comercio

Este plugin estaba un poco desactualizado y solo se actualizó hoy (con la ayuda de @Arkshine, debo añadir :slight_smile: ). Actualiza el plugin y creo que deberás reconstruir la aplicación si es de producción o reiniciar la aplicación. Aquí tienes algunas instrucciones del equipo de Discourse: Install plugins on a self-hosted site

5 Me gusta

Gracias por la actualización. Puedo confirmar que todo funciona.

5 Me gusta

Hola a todos

¿Alguien puede ayudarme a solucionar este problema?

En el escritorio, estoy obteniendo una pantalla negra

Discourse - V3.1.3

Uncaught (in promise) Error: Could not find module discourse-i18n imported from discourse/plugins/discourse-topic-trade-buttons/discourse/connectors/topic-above-post-stream/trade-buttons

Uncaught (in promise) Error: Could not find module `discourse-i18n` imported from `discourse/plugins/discourse-topic-trade-buttons/discourse/connectors/topic-above-post-stream/trade-buttons`
    at loader.js:247:1
    at u (loader.js:258:1)
    at a.findDeps (loader.js:168:1)
    at u (loader.js:262:1)
    at requireModule (loader.js:24:1)
    at plugin-connectors.js:57:1
    at plugin-connectors.js:45:1
    at Array.forEach (<anonymous>)
    at b (plugin-connectors.js:40:1)
    at plugin-connectors.js:56:1
    at plugin-connectors.js:153:1
    at plugin-connectors.js:45:1
    at Array.forEach (<anonymous>)
    at b (plugin-connectors.js:40:1)
    at S (plugin-connectors.js:150:1)
    at j (plugin-connectors.js:159:1)
    at e.renderedConnectorsFor (plugin-connectors.js:164:1)
    at get connectors [as connectors] (plugin-outlet.js:126:1)
    at Ce (index.js:1251:1)
    at reference.js:175:1
    at reference.js:136:1
    at e.track (validator.js:668:1)
    at f (reference.js:135:1)
    at index.js:5588:1
    at reference.js:136:1
    at e.track (validator.js:668:1)
    at f (reference.js:135:1)
    at index.js:5588:1
    at reference.js:136:1
    at e.track (validator.js:668:1)
    at f (reference.js:135:1)
    at reference.js:312:1
    at reference.js:136:1
    at e.track (validator.js:668:1)
    at f (reference.js:135:1)
    at Object.evaluate (runtime.js:3440:1)
    at Object.evaluate (runtime.js:1052:1)
    at It.evaluateSyscall (runtime.js:4263:1)
    at It.evaluateInner (runtime.js:4234:1)
    at It.evaluateOuter (runtime.js:4227:1)
    at Wt.next (runtime.js:5058:1)
    at Wt._execute (runtime.js:5045:1)
    at Wt.execute (runtime.js:5038:1)
    at Qt.sync (runtime.js:5105:1)
    at wr.render (index.js:6749:1)
    at index.js:7013:1
    at Mt (runtime.js:4139:1)
    at Tr._renderRoots (index.js:6996:1)
    at Tr._renderRootsTransaction (index.js:7039:1)
    at Tr._renderRoot (index.js:6985:1)
    at Tr._appendDefinition (index.js:6911:1)
    at Tr.appendOutletView (index.js:6899:1)
    at p.invoke (queue.ts:203:14)
    at p.flush (queue.ts:98:13)
    at h.flush (deferred-action-queues.ts:75:19)
    at $._end (index.ts:616:32)
    at _boundAutorunEnd (index.ts:257:12)

Hola y bienvenido @viswanatha :slight_smile:

Dado que esto parece estar relacionado con el plugin topic-trade-buttons, he trasladado tu publicación al tema correspondiente para que reciba la atención adecuada. :+1:

@viswanatha ¿Recompilaste tu proyecto después de agregar este plugin?

Hola @Janno_Liivak,

He reconstruido mi proyecto, pero sigo teniendo el mismo problema.

También faltan las siguientes opciones.


Habilitar los botones de negociación de temas

image

Configuración de categoría


1 me gusta

@Janno_Liivak Es posible que necesites Pinning plugin and theme versions for older Discourse installs (.discourse-compatibility) ya que la última PR introdujo la importación de discourse-i18n que se agregó relativamente recientemente en el núcleo (creo que el 12 de octubre).

Por lo que veo, este cambio ocurrió después de la versión 3.2.0.beta2-dev (el 12 de septiembre).

Así que creo que tendría sentido agregar una entrada en .discourse-compatibility para decir que los usuarios con una versión de Discourse anterior a la 3.2.0-beta2-dev están bloqueados a la última confirmación antes de mi PR (que es la del 22 de febrero)

< 3.2.0.beta2-dev 88db827dcecf5faf4e009e38422ede6847488535
4 Me gusta

:warning: vulnerabilidad de seguridad :warning:

Resumen: instalar este plugin filtrará, incluso cuando esté deshabilitado, todos los campos personalizados del tema que estén presentes a cualquiera que pueda acceder al tema, incluidos los usuarios anónimos. Dependiendo de otros plugins que tengas instalados, los campos personalizados del tema pueden contener datos confidenciales.

Al evaluar este plugin para un cliente, descubrimos una serie de problemas de seguridad. Hemos corregido estos problemas en nuestra bifurcación (https://github.com/communiteq/discourse-topic-trade-buttons/tree/master) y hemos realizado una solicitud de extracción (pull request). Sin embargo, el autor del tema no ha respondido a nuestra solicitud de extracción ni a nuestro mensaje privado, por lo que ahora estamos divulgando estos problemas.

Corrección de seguridad: fuga de información

Todos los campos personalizados (¡incluidos los de otros plugins!) se están serializando, incluso a usuarios anónimos. Los campos personalizados pueden contener datos confidenciales y nunca deben serializarse de esa manera.

Dado que los valores sold_at, etc., se establecen en el lado del servidor de todos modos y los botones se “calculan” en topic.archived, la lógica de los campos personalizados se puede eliminar del código del lado del cliente que ve el usuario y los campos personalizados solo necesitan serializarse para que funcione la interfaz de administración; por lo tanto, la serialización se puede limitar a los usuarios administradores. Sospechamos que esto ni siquiera es necesario.

Correcciones de inicialización

La comprobación if SiteSetting.topic_trade_buttons_enabled que delimita la lógica de serialización hace que sea necesario reiniciar Discourse después de habilitar o deshabilitar el plugin. Esta comprobación es innecesaria ya que Discourse ya se encarga de ello.
Usar respect_plugin_enabled: false es innecesario y agrava el problema de seguridad descrito anteriormente.

6 Me gusta

Solicitud de extracción fusionada ahora

3 Me gusta

yo también, no puedo configurar

Acabo de encontrar un aviso de deprecación en la consola de desarrollador de mi navegador:

deprecation-identify-source.js:15 DEPRECACIÓN: [PLUGIN discourse-topic-trade-buttons] La ruta de la propiedad model se usó en la plantilla discourse/plugins/discourse-topic-trade-buttons/discourse/templates/connectors/topic-above-post-stream/trade-buttons.hbs sin usar this. Este comportamiento de reserva ha sido obsoleto, todas las propiedades deben buscarse en this cuando se usan en la plantilla: {{this.model}} [id de deprecación: ember-this-fallback.this-property-fallback] Esto se eliminará en ember-this-fallback n/a. Ver Resolving the `this-property-fallback` deprecation para más detalles.

Solo quería llamar la atención sobre esto, aunque no puedo solucionarlo yo mismo. :see_no_evil_monkey:

3 Me gusta

¡Déjame traducirte al portugués de Brasil! Soy de Brasil.

2 Me gusta

¡Hola @Anderson_Cardoso_Silva! ¿Eres capaz de hacer una solicitud de extracción con traducciones?

Corrigí algunos de los problemas que vi en los registros del navegador (incluyendo lo que mencionó @Roi) y algunos textos en inglés que estaban extraños. Probé todo en el entorno de desarrollo local, pero si alguien más pudiera probarlo en su Discourse, se lo agradecería.

2 Me gusta

@Arkshine , agregué esta línea a .discourse-compatibility. ¡Gracias!

1 me gusta

:warning: vulnerabilidad de seguridad :warning:

Hola @Janno_Liivak,

¡Gracias por este útil plugin! He encontrado algunas vulnerabilidades de seguridad críticas que requieren atención:

Problemas

  1. Sin verificación de autorización - Cualquier usuario puede marcar cualquier tema como vendido/comprado/intercambiado
  2. Falta de validación backend - Los controladores no verifican:
    • Plugin habilitado (topic_trade_buttons_enabled)
    • Botones de categoría habilitados (enable_*_button)
    • Solo el frontend verifica esta configuración (inseguro)
  3. Sin validación de entrada - El parámetro topic_id no se valida
  4. Sin registro de acciones posteriores a la creación - Las operaciones no se registran, no hay registro de quién realizó las acciones

Impacto

  • Manipulación no autorizada de temas
  • Omisión de la configuración del plugin/categoría mediante llamadas directas a la API
  • Sin rastro de auditoría de quién realizó las acciones de intercambio
4 Me gusta

Hola @Janno_Liivak,

Las etiquetas “\[Comprado\]” y “\[Vendido\]” aparecen de repente en chino simplificado en nuestro sitio. Discourse 3.6.0.beta2. No se realizaron cambios en nuestro sitio aparte de las actualizaciones.

¿Alguna idea sobre cómo hacer que las etiquetas coincidan con el idioma y el conjunto de caracteres del tema/sitio?

Además, ¿se abordaron alguna vez los problemas de vulnerabilidad de seguridad que mencionó @lava?

¡Gracias!
Gunnar

¡Hola @Gunnar! ¿Qué idioma (y código de idioma) está utilizando tu sitio?

Esos problemas de seguridad aún no se han abordado. He estado bastante ocupado últimamente y, como ya no uso Discourse, simplemente me olvidé de ellos :see_no_evil_monkey:

Pero crearé una tarea para mí ahora e intentaré encontrar tiempo pronto para solucionarlo todo. Si alguien puede ayudar, estaré encantado de revisar la solicitud de extracción (pull request).

2 Me gusta

Inglés (EE. UU.). Aquí tienes una captura de pantalla de todos los ajustes de “idioma” para nuestro sitio: