Questo plugin era un po’ obsoleto ed è stato aggiornato solo oggi (con l’aiuto di @Arkshine devo aggiungere
). Aggiorna il plugin e credo che dovrai ricompilare l’app se è in produzione o riavviare l’applicazione. Ecco alcune istruzioni dal team di Discourse: Install plugins on a self-hosted site
Grazie per l’aggiornamento. Confermo che tutto funziona.
Ciao a tutti
Qualcuno può aiutarmi a risolvere questo problema?
Sul desktop, ricevo una schermata nera
Discourse - V3.1.3
Uncaught (in promise) Error: Impossibile trovare il modulo discourse-i18n importato da discourse/plugins/discourse-topic-trade-buttons/discourse/connectors/topic-above-post-stream/trade-buttons
Uncaught (in promise) Error: Impossibile trovare il modulo `discourse-i18n` importato da `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)
Ciao e benvenuto @viswanatha ![]()
Dato che sembra collegato al plugin topic-trade-buttons, ho spostato il tuo post nell’argomento pertinente per farlo esaminare dalle persone giuste. ![]()
@viswanatha Hai ricompilato il tuo progetto dopo aver aggiunto questo plugin?
Ciao @Janno_Liivak,
Ho ricostruito il mio progetto, ma sto ancora riscontrando lo stesso problema.
Mancano anche le seguenti opzioni.
Abilita i pulsanti di scambio dell’argomento
![]()
Impostazione della categoria
@Janno_Liivak Potresti aver bisogno di Pinning plugin and theme versions for older Discourse installs (.discourse-compatibility) poiché l’ultimo PR ha introdotto l’importazione di discourse-i18n che è stata aggiunta relativamente di recente nel core (credo il 12 ottobre).
Da quello che vedo, questa modifica è avvenuta dopo la 3.2.0.beta2-dev (il 12 settembre).
Quindi penso che avrebbe senso aggiungere una voce in .discourse-compatibility per dire che gli utenti con una versione di Discourse precedente alla 3.2.0-beta2-dev sono bloccati all’ultimo commit prima del mio PR (che è quello del 22 febbraio)
< 3.2.0.beta2-dev 88db827dcecf5faf4e009e38422ede6847488535
vulnerabilità di sicurezza ![]()
In sintesi, l’installazione di questo plugin - anche quando disabilitato - farà trapelare tutti i campi personalizzati dell’argomento presenti a chiunque possa accedere all’argomento, inclusi gli utenti anonimi. A seconda di altri plugin installati, i campi personalizzati dell’argomento possono contenere dati sensibili.
Durante la verifica di questo plugin per un cliente, abbiamo scoperto una serie di problemi di sicurezza. Abbiamo risolto questi problemi nel nostro fork (https://github.com/communiteq/discourse-topic-trade-buttons/tree/master) e abbiamo creato una pull request. Tuttavia, l’autore dell’argomento non ha risposto alla nostra pull request né al nostro messaggio privato, quindi ora stiamo divulgando questi problemi.
Correzione di sicurezza: fuga di informazioni
Tutti i campi personalizzati (inclusi quelli di altri plugin!) vengono serializzati, anche per gli utenti anonimi. I campi personalizzati possono contenere dati sensibili e non dovrebbero mai essere serializzati in quel modo.
Poiché i valori sold_at, ecc. vengono comunque impostati lato server e i pulsanti vengono “calcolati” su topic.archived, la logica dei campi personalizzati può essere rimossa dal codice front-end rivolto all’utente e i campi personalizzati devono essere serializzati solo per l’interfaccia di amministrazione affinché funzioni - quindi la serializzazione può essere limitata agli utenti amministratori. Sospettiamo che anche questo non sia necessario.
Correzioni di inizializzazione
Il controllo if SiteSetting.topic_trade_buttons_enabled che delimita la logica di serializzazione rende necessario riavviare Discourse dopo aver abilitato o disabilitato il plugin. Questo controllo è non necessario poiché Discourse se ne occupa già.
L’uso di respect_plugin_enabled: false è non necessario e aggrava il problema di sicurezza sopra descritto.
Pull request unito ora
anche a me, non riesco a configurarlo
Ho appena trovato un avviso di deprecazione nella console degli sviluppatori del mio browser:
deprecation-identify-source.js:15 DEPRECATION: [PLUGIN discourse-topic-trade-buttons] La proprietà
modelè stata utilizzata nel templatediscourse/plugins/discourse-topic-trade-buttons/discourse/templates/connectors/topic-above-post-stream/trade-buttons.hbssenza utilizzarethis. Questo comportamento di fallback è stato deprecato, tutte le proprietà devono essere cercate suthisquando utilizzate nel template: {{this.model}} [deprecation id: ember-this-fallback.this-property-fallback] Questo verrà rimosso in ember-this-fallback n/a. Vedi Resolving the `this-property-fallback` deprecation per maggiori dettagli.
Volevo solo portare questo alla vostra attenzione, anche se non posso risolverlo da solo. ![]()
Lascia che ti traduca in portoghese-BR! Vengo dal Brasile.
Ciao @Anderson_Cardoso_Silva! Sei in grado di fare una richiesta di pull con le traduzioni?
Ho risolto alcuni dei problemi che ho visto nei log del browser (incluso quello menzionato da @Roi) e alcuni testi in inglese che erano strani. Ho testato tutto nell’ambiente di sviluppo locale, ma se qualcun altro potesse testarlo sul proprio Discourse, ne sarei grato.
@Arkshire, ho aggiunto questa riga a .discourse-compatibility. Grazie!
vulnerabilità di sicurezza 
Ciao @Janno_Liivak,
Grazie per questo utile plugin! Ho trovato alcune vulnerabilità di sicurezza critiche che necessitano di attenzione:
Problemi
- Nessun controllo di autorizzazione - Qualsiasi utente può contrassegnare qualsiasi argomento come venduto/acquistato/scambiato
- Mancanza di validazione backend - I controller non verificano:
- Plugin abilitato (
topic_trade_buttons_enabled) - Pulsanti di categoria abilitati (
enable_*_button) - Solo il frontend controlla queste impostazioni (non sicuro)
- Plugin abilitato (
- Nessuna validazione dell’input - Parametro
topic_idnon validato - Nessuna azione post creata - Operazioni non registrate, nessun record di chi ha eseguito le azioni
Impatto
- Manipolazione non autorizzata degli argomenti
- Bypass delle impostazioni del plugin/categoria tramite chiamate API dirette
- Nessuna traccia di controllo di chi ha eseguito le azioni di scambio
Ciao @Janno_Liivak,
Le etichette “\[Acquistato\]” e “\[Venduto\]” sono apparse improvvisamente in cinese semplificato sul nostro sito. Discourse 3.6.0.beta2. Non sono state apportate modifiche al nostro sito oltre agli aggiornamenti.
Hai qualche idea su come far corrispondere le etichette alla lingua e al set di caratteri dell’argomento/sito?
Inoltre, sono mai stati affrontati i problemi di vulnerabilità di sicurezza menzionati da @lava?
Grazie!
Gunnar
Ciao @Gunnar! Che lingua (e codice lingua) sta usando il tuo sito?
Quei problemi di sicurezza non sono ancora stati risolti. Ultimamente sono stato piuttosto impegnato e, dato che non uso più Discourse, me ne sono semplicemente dimenticato ![]()
Ma mi creerò un compito ora e cercherò presto di trovare il tempo per sistemare tutto. Se qualcuno può aiutare, sarò felice di rivedere la pull request.






