Botões de Trading

Este plugin estava um pouco desatualizado e só foi atualizado hoje (com a ajuda de @Arkshine, devo acrescentar :slight_smile: ). Atualize o plugin e acredito que você precisará reconstruir o aplicativo se for produção ou reiniciar o aplicativo. Aqui estão algumas instruções da equipe do Discourse: Install plugins on a self-hosted site

5 curtidas

Obrigado pela atualização. Posso confirmar que tudo está funcionando.

5 curtidas

Olá a todos

Alguém pode me ajudar a corrigir este problema?

Na área de trabalho, estou recebendo uma tela preta

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)

Olá e bem-vindo @viswanatha :slight_smile:

Como isso parece conectado ao plugin topic-trade-buttons, eu movi sua postagem para o tópico relevante para que as pessoas certas a vejam. :+1:

@viswanatha Você reconstruiu seu projeto depois de adicionar este plugin?

Olá @Janno_Liivak,

Reconstruí meu projeto, mas ainda estou enfrentando o mesmo problema.

As seguintes opções também estão faltando.


Habilitar os botões de negociação de tópicos

image

Configuração da categoria


1 curtida

@Janno_Liivak Você pode precisar de Pinning plugin and theme versions for older Discourse installs (.discourse-compatibility), já que o último PR introduziu a importação de discourse-i18n, que foi adicionada relativamente recentemente ao core (em 12 de outubro, acredito).

Pelo que vejo, essa mudança ocorreu após a 3.2.0.beta2-dev (em 12 de setembro).

Portanto, acho que faria sentido adicionar uma entrada em .discourse-compatibility para dizer que usuários com uma versão mais antiga do Discourse do que a 3.2.0-beta2-dev estão travados no último commit antes do meu PR (que é o de 22 de fevereiro)

< 3.2.0.beta2-dev 88db827dcecf5faf4e009e38422ede6847488535
4 curtidas

:warning: vulnerabilidade de segurança :warning:

Resumo: instalar este plugin vazará - mesmo quando desativado - todos os campos personalizados de tópicos presentes para qualquer pessoa que possa acessar o tópico, incluindo usuários anônimos. Dependendo de outros plugins que você instalou, os campos personalizados de tópicos podem conter dados sensíveis.

Ao avaliar este plugin para um cliente, descobrimos uma série de problemas de segurança. Corrigimos esses problemas em nosso fork (https://github.com/communiteq/discourse-topic-trade-buttons/tree/master) e fizemos um pull request. No entanto, o autor do tópico não respondeu ao nosso pull request nem à nossa mensagem privada, então agora estamos divulgando esses problemas.

Correção de segurança: vazamento de informações

Todos os campos personalizados (incluindo os de outros plugins!) estão sendo serializados, inclusive para usuários anônimos. Campos personalizados podem conter dados sensíveis e nunca devem ser serializados dessa forma.

Como os valores sold_at etc. estão sendo definidos no lado do servidor de qualquer maneira e os botões são “calculados” em topic.archived, a lógica dos campos personalizados pode ser removida do código voltado para o usuário no frontend e os campos personalizados só precisam ser serializados para que a interface de administração funcione - portanto, a serialização pode ser limitada a usuários administradores. Suspeitamos que isso nem seja necessário.

Correções de inicialização

A verificação if SiteSetting.topic_trade_buttons_enabled que está protegendo a lógica de serialização torna necessário reiniciar o Discourse após habilitar ou desabilitar o plugin. Essa verificação é desnecessária, pois o Discourse já cuida disso.
Usar respect_plugin_enabled: false é desnecessário e agrava o problema de segurança descrito acima.

6 curtidas

Pull request mesclado agora

3 curtidas

Eu também, não consigo configurar

Acabei de encontrar um aviso de depreciação no console do desenvolvedor do meu navegador:

deprecation-identify-source.js:15 DEPRECATION: [PLUGIN discourse-topic-trade-buttons] A propriedade model foi usada no template discourse/plugins/discourse-topic-trade-buttons/discourse/templates/connectors/topic-above-post-stream/trade-buttons.hbs sem usar this. Esse comportamento de fallback foi depreciado, todas as propriedades devem ser procuradas em this quando usadas no template: {{this.model}} [deprecation id: ember-this-fallback.this-property-fallback] Isso será removido em ember-this-fallback n/a. Veja Resolving the `this-property-fallback` deprecation para mais detalhes.

Só queria chamar a atenção para isso - embora eu não possa consertar sozinho. :see_no_evil_monkey:

3 curtidas

Let me translate do Portuguese-BR for you! I´m from Brazil.

2 curtidas

Oi @Anderson_Cardoso_Silva ! Você consegue fazer um pull request com as traduções?

Corrigi alguns dos problemas que observei nos registros do navegador (incluindo o que @Roi mencionou) e alguns textos em inglês que estavam estranhos. Testei tudo no ambiente de desenvolvimento local, mas se alguém mais puder testar em seu Discourse, ficarei agradecido.

2 curtidas

@Arkshine , adicionei esta linha ao .discourse-compatibility. Obrigado!

1 curtida

:warning: Vulnerabilidade de segurança :warning:

Olá @Janno_Liivak,

Obrigado por este plugin útil! Encontrei algumas vulnerabilidades de segurança críticas que precisam de atenção:

Problemas

  1. Sem verificação de autorização - Qualquer usuário pode marcar qualquer tópico como vendido/comprado/trocado
  2. Validação de backend ausente - Os controladores não verificam:
    • Plugin ativado (topic_trade_buttons_enabled)
    • Botões de categoria ativados (enable_*_button)
    • Apenas o frontend verifica essas configurações (inseguro)
  3. Sem validação de entrada - Parâmetro topic_id não validado
  4. Nenhuma ação pós-criação - Operações não registradas, nenhum registro de quem realizou as ações

Impacto

  • Manipulação não autorizada de tópicos
  • Contorno das configurações do plugin/categoria por meio de chamadas diretas à API
  • Nenhum rastro de auditoria de quem realizou as ações de negociação
4 curtidas

Olá @Janno_Liivak,

Os rótulos “\[Comprado\]” e “\[Vendido\]” apareceram repentinamente em chinês simplificado em nosso site. Discourse 3.6.0.beta2. Nenhuma alteração foi feita em nosso site além de atualizações.

Alguma ideia de como fazer os rótulos corresponderem ao idioma e ao conjunto de caracteres do tópico/site?

Além disso, aquelas questões de vulnerabilidade de segurança que @lava mencionou foram alguma vez abordadas?

Obrigado!
Gunnar

Olá @Gunnar! Qual idioma (e código de idioma) seu site está usando?

Esses problemas de segurança ainda não foram resolvidos. Tenho estado bastante ocupado ultimamente e, como não uso mais o Discourse, simplesmente me esqueci deles :see_no_evil_monkey:

Mas vou criar uma tarefa para mim agora e tentar encontrar tempo em breve para corrigir tudo. Se alguém puder ajudar, ficarei feliz em revisar o pull request.

2 curtidas

Inglês (EUA). Aqui está uma captura de tela de todas as configurações de “idioma” para o nosso site: