Bug com acesso a tópico público sem login 3.1.0.beta2

Passos para reproduzir:
crie uma categoria com segurança: todos podem ler


saia do discourse
entre em um post dentro desta categoria:
no meu site:
https://forum.rat-adv.com/t/test-posta-na-chwile/1315

Você pode ver:

# Oops

O software que alimenta este fórum de discussão encontrou um problema inesperado. Pedimos desculpas pelo inconveniente.

Informações detalhadas sobre o erro foram registradas e uma notificação automática gerada. Vamos dar uma olhada nisso.

Nenhuma ação adicional é necessária. No entanto, se a condição de erro persistir, você pode fornecer detalhes adicionais, incluindo os passos para reproduzir o erro, postando um tópico de discussão na categoria de feedback do site.

Se você fizer login no discourse
estes links funcionam

Nos logs você pode ver:

e o stack para noMethodError:

lib/guardian/topic_guardian.rb:146:in `can_recover_topic?'

app/serializers/topic_view_details_serializer.rb:119:in `include_can_recover?'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'

(eval):9:in `_fast_attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:200:in `serialize'

lib/freedom_patches/ams_include_without_root.rb:57:in `include!'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:368:in `block in include_associations!'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:367:in `each_key'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:367:in `include_associations!'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:362:in `serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'

activesupport (7.0.4.1) lib/active_support/json/encoding.rb:22:in `encode'

activesupport (7.0.4.1) lib/active_support/json/encoding.rb:22:in `encode'

activesupport (7.0.4.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'

multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'

multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'

multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'

multi_json (1.15.0) lib/multi_json.rb:139:in `dump'

app/controllers/topics_controller.rb:1238:in `block (2 levels) in perform_show_response'

actionpack (7.0.4.1) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'

app/controllers/topics_controller.rb:1232:in `perform_show_response'

app/controllers/topics_controller.rb:187:in `show'

actionpack (7.0.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (7.0.4.1) lib/abstract_controller/base.rb:215:in `process_action'

actionpack (7.0.4.1) lib/action_controller/metal/rendering.rb:53:in `process_action'

actionpack (7.0.4.1) lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport (7.0.4.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'

app/controllers/application_controller.rb:414:in `block in with_resolved_locale'

i18n (1.12.0) lib/i18n.rb:322:in `with_locale'

app/controllers/application_controller.rb:414:in `with_resolved_locale'

activesupport (7.0.4.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'

activesupport (7.0.4.1) lib/active_support/callbacks.rb:138:in `run_callbacks'

actionpack (7.0.4.1) lib/abstract_controller/callbacks.rb:233:in `process_action'

actionpack (7.0.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack (7.0.4.1) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'

activesupport (7.0.4.1) lib/active_support/notifications.rb:206:in `block in instrument'

activesupport (7.0.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (7.0.4.1) lib/active_support/notifications.rb:206:in `instrument'

actionpack (7.0.4.1) lib/action_controller/metal/instrumentation.rb:66:in `process_action'

actionpack (7.0.4.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'

activerecord (7.0.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (7.0.4.1) lib/abstract_controller/base.rb:151:in `process'

actionview (7.0.4.1) lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'

actionpack (7.0.4.1) lib/action_controller/metal.rb:188:in `dispatch'

actionpack (7.0.4.1) lib/action_controller/metal.rb:251:in `dispatch'

actionpack (7.0.4.1) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'

actionpack (7.0.4.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'

actionpack (7.0.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (7.0.4.1) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (7.0.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (7.0.4.1) lib/action_dispatch/routing/route_set.rb:852:in `call'

lib/middleware/omniauth_bypass_middleware.rb:74:in `call'

rack (2.2.6.2) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.6.2) lib/rack/conditional_get.rb:27:in `call'

rack (2.2.6.2) lib/rack/head.rb:12:in `call'

actionpack (7.0.4.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:367:in `call'

rack (2.2.6.2) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.6.2) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (7.0.4.1) lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack (7.0.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'

logster (2.11.4) lib/logster/middleware/reporter.rb:43:in `call'

railties (7.0.4.1) lib/rails/rack/logger.rb:40:in `call_app'

railties (7.0.4.1) lib/rails/rack/logger.rb:27:in `call'

config/initializers/100-quiet_logger.rb:20:in `call'

config/initializers/100-silence_logger.rb:29:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:24:in `call'

rack (2.2.6.2) lib/rack/method_override.rb:24:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.6.2) lib/rack/sendfile.rb:110:in `call'

actionpack (7.0.4.1) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'

rack-mini-profiler (3.0.0) lib/mini_profiler/profiler.rb:249:in `call'

message_bus (4.3.2) lib/message_bus/rack/middleware.rb:60:in `call'

lib/middleware/request_tracker.rb:228:in `call'

railties (7.0.4.1) lib/rails/engine.rb:530:in `call'

railties (7.0.4.1) lib/rails/railtie.rb:226:in `public_send'

railties (7.0.4.1) lib/rails/railtie.rb:226:in `method_missing'

rack (2.2.6.2) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.6.2) lib/rack/urlmap.rb:58:in `each'

rack (2.2.6.2) lib/rack/urlmap.rb:58:in `call'

unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'

unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/3.1.0/bin/unicorn:25:in `load'

vendor/bundle/ruby/3.1.0/bin/unicorn:25:in `<main>'

Piotr

1 curtida

Olá Areen. :slight_smile:

Segui seus passos e não encontrei nenhum problema.

Tentei inserir um tópico em seu fórum enquanto estava no modo de segurança e encontrei erros para qualquer tópico em qualquer categoria.

O problema persiste se você reconstruir seu fórum (./launcher rebuild app)? Você tem algum plugin instalado?

1 curtida

Você pode obter o texto do tópico abrindo a página bruta https://forum.rat-adv.com/raw/1315 e, em seguida, recriando o tópico. (No entanto, o tópico quebrado ainda estará aqui)

Olá
Eu não sabia que as páginas podiam ser abertas no modo bruto, obrigado, será útil :slight_smile:
estes tópicos aparecem no modo bruto!

mas o problema é que todas as páginas que são públicas - estas não aparecem

Eu tento fazer:
remover/adicionar permissões públicas na categoria
adicionar um novo post na categoria pública
adicionar uma nova categoria e ver se a entrada principal aparece

Eu obtenho os mesmos resultados
na página de informações nos logs

NoMethodError (undefined method `has_trust_level?' for nil:NilClass

         (SiteSetting.tl4_delete_posts_and_topics && user.has_trust_level?(TrustLevel[4]))
                                                         ^^^^^^^^^^^^^^^^^))
lib/guardian/topic_guardian.rb:146:in `can_recover_topic?'

Eu acho que

  1. Eu tenho um problema com o código baixado, vou puxar o código fonte e depois reconstruir
  2. O problema está no armazenamento de dados em pgsql - isso será mais difícil

Eu escreverei o que consegui realizar

2 curtidas

Olá
Verifiquei o código-fonte e o problema está neste commit

Acho que um usuário não logado não tem um perfil de usuário com nível de confiança
Eu reverti essas alterações neste método em meu repositório
mas não sei o que fazer a seguir, não programo em Ruby

o que deve acontecer agora para alguém corrigir este trecho de código?

Atenciosamente …
Piotr

3 curtidas

Olá,

Consigo reproduzir este problema.

Ativar as configurações do site tl4 delete posts and topics quebra os tópicos para anônimos.

Correção rápida: Desative esta configuração enquanto a correção está a caminho. :slightly_smiling_face:

4 curtidas

Acredito que @kris.kotlarek corrigiu isso, você pode recompilar e tentar novamente?

3 curtidas

Sim, eu faço isso hoje e escrevo sobre os resultados

1 curtida

Apenas para adicionar o onebox para consistência: :slight_smile:

1 curtida

Este tópico foi fechado automaticamente após 4 dias. Novas respostas não são mais permitidas.