Ce plugin était un peu obsolète et n’a été mis à jour qu’aujourd’hui (avec l’aide de @Arkshine, je dois ajouter
). Mettez à jour le plugin et je pense que vous devrez reconstruire l’application si elle est en production ou redémarrer l’application. Voici quelques instructions de l’équipe Discourse : Install plugins on a self-hosted site
Merci pour la mise à jour. Je peux confirmer que tout fonctionne.
Bonjour à tous
Quelqu’un peut-il m’aider à résoudre ce problème ?
Sur le bureau, j’ai un écran noir
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)
Bonjour et bienvenue @viswanatha ![]()
Comme cela semble lié au plugin topic-trade-buttons, j’ai déplacé votre message dans le sujet pertinent pour que les bonnes personnes le voient. ![]()
@viswanatha Avez-vous reconstruit votre projet après avoir ajouté ce plugin ?
Salut @Janno_Liivak,
J’ai reconstruit mon projet, mais je rencontre toujours le même problème.
Les options suivantes sont également manquantes.
Activer les boutons de négociation de sujet
![]()
Paramètre de catégorie
@Janno_Liivak Vous pourriez avoir besoin de Pinning plugin and theme versions for older Discourse installs (.discourse-compatibility) puisque le dernier PR a introduit l’importation de discourse-i18n qui a été ajoutée relativement récemment dans le cœur (le 12 octobre, je crois).
D’après ce que je vois, ce changement s’est produit après la version 3.2.0.beta2-dev (le 12 septembre).
Je pense donc qu’il serait logique d’ajouter une entrée dans .discourse-compatibility pour indiquer que les utilisateurs ayant une version de Discourse antérieure à la 3.2.0-beta2-dev sont bloqués à la dernière validation avant mon PR (celle du 22 février).
< 3.2.0.beta2-dev 88db827dcecf5faf4e009e38422ede6847488535
vulnérabilité de sécurité ![]()
TL;DR l’installation de ce plugin divulguera - même lorsqu’il est désactivé - tous les champs personnalisés de sujet présents à toute personne pouvant accéder au sujet, y compris les utilisateurs anonymes. Selon les autres plugins que vous avez installés, les champs personnalisés de sujet peuvent contenir des données sensibles.
Lors de l’évaluation de ce plugin pour un client, nous avons découvert un certain nombre de problèmes de sécurité. Nous avons corrigé ces problèmes dans notre fork (https://github.com/communiteq/discourse-topic-trade-buttons/tree/master) et avons soumis une pull request. Cependant, l’auteur du sujet n’a pas répondu à notre pull request ni à notre message privé, nous divulguons donc maintenant ces problèmes.
Correction de sécurité : fuite d’informations
Tous les champs personnalisés (y compris ceux d’autres plugins !) sont sérialisés, y compris pour les utilisateurs anonymes. Les champs personnalisés peuvent contenir des données sensibles et ne devraient jamais être sérialisés de cette manière.
Étant donné que les valeurs sold_at, etc. sont définies côté serveur de toute façon et que les boutons sont “calculés” sur topic.archived, la logique des champs personnalisés peut être supprimée du code côté frontend destiné aux utilisateurs et les champs personnalisés n’ont besoin d’être sérialisés que pour l’interface d’administration afin de fonctionner - la sérialisation peut donc être limitée aux utilisateurs administrateurs. Nous soupçonnons que cela n’est même pas nécessaire.
Corrections d’initialisation
La vérification if SiteSetting.topic_trade_buttons_enabled qui encadre la logique de sérialisation rend nécessaire le redémarrage de Discourse après l’activation ou la désactivation du plugin. Cette vérification est inutile puisque Discourse s’en charge déjà.
L’utilisation de respect_plugin_enabled: false est inutile et aggrave le problème de sécurité décrit ci-dessus.
Pull request fusionné maintenant
moi aussi, impossible de configurer
J’ai trouvé un avis de dépréciation dans la console du développeur de mon navigateur :
deprecation-identify-source.js:15 DÉPRÉCIATION : [PLUGIN discourse-topic-trade-buttons] La propriété
modela été utilisée dans le templatediscourse/plugins/discourse-topic-trade-buttons/discourse/templates/connectors/topic-above-post-stream/trade-buttons.hbssans utiliserthis. Ce comportement de repli a été déprécié, toutes les propriétés doivent être recherchées surthislorsqu’elles sont utilisées dans le template : {{this.model}} [id de dépréciation : ember-this-fallback.this-property-fallback] Ceci sera supprimé dans ember-this-fallback n/a. Voir Resolving the `this-property-fallback` deprecation pour plus de détails.
Je voulais juste attirer l’attention sur ce point - bien que je ne puisse pas le corriger moi-même. ![]()
Laissez-moi traduire pour vous en portugais brésilien ! Je viens du Brésil.
Salut @Anderson_Cardoso_Silva ! Es-tu en mesure de faire une demande de fusion avec des traductions ?
J’ai corrigé certains des problèmes que j’ai vus dans les journaux du navigateur (y compris ce que @Roi a mentionné) et quelques textes en anglais qui étaient étranges. J’ai testé tout dans l’environnement de développement local, mais si quelqu’un d’autre pouvait le tester sur leur Discourse, je serais reconnaissant.
@Arkshine , a ajouté cette ligne à .discourse-compatibility. Merci !
vulnérabilité de sécurité 
Salut @Janno_Liivak,
Merci pour ce plugin utile ! J’ai trouvé des vulnérabilités de sécurité critiques qui nécessitent une attention particulière :
Problèmes
- Aucune vérification d’autorisation - N’importe quel utilisateur peut marquer n’importe quel sujet comme vendu/acheté/échangé
- Validation backend manquante - Les contrôleurs ne vérifient pas :
- Plugin activé (
topic_trade_buttons_enabled) - Boutons de catégorie activés (
enable_*_button) - Seul le frontend vérifie ces paramètres (dangereux)
- Plugin activé (
- Aucune validation d’entrée - Le paramètre
topic_idn’est pas validé - Aucune action post-création - Les opérations ne sont pas enregistrées, aucun enregistrement de qui a effectué les actions
Impact
- Manipulation non autorisée des sujets
- Contournement des paramètres du plugin/de la catégorie via des appels API directs
- Aucune piste d’audit de qui a effectué les actions de transaction
Salut @Janno_Liivak,
Les étiquettes « [Acheté] » et « [Vendu] » apparaissent soudainement en chinois simplifié sur notre site. Discourse 3.6.0.beta2. Aucun changement n’a été apporté à notre site, à part les mises à jour.
Avez-vous des idées sur la façon de faire correspondre les étiquettes à la langue et au jeu de caractères du sujet/site ?
De plus, les problèmes de vulnérabilité de sécurité mentionnés par @lava ont-ils déjà été résolus ?
Merci !
Gunnar
Salut @Gunnar ! Quelle langue (et quel code de langue) utilise votre site ?
Ces problèmes de sécurité n’ont pas encore été résolus. J’ai été très occupé ces derniers temps et comme je n’utilise plus Discourse moi-même, je les ai tout simplement oubliés ![]()
Mais je vais me créer une tâche maintenant et essayer de trouver du temps bientôt pour tout corriger. Si quelqu’un peut aider, je serais heureux d’examiner la pull request.






