스태프에게 PM 허용

2026.7.0-latest +1 버전부터 그리고 오늘의 버전부터 더 이상 개인 메시지(PM)를 보낼 수 없습니다. 로그를 확인해 보니 discourse-allow-pm-to-staff 플러그인이 있었습니다. 이 플러그인을 비활성화하자 다시 PM이 정상적으로 작동했습니다. 로그에서 발견한 내용은 다음과 같습니다:

plugins/discourse-allow-pm-to-staff/plugin.rb:46:in 'block (2 levels) in activate!'

lib/plugin/instance.rb:460:in 'Kernel#public_send'

lib/plugin/instance.rb:460:in 'block (2 levels) in Guardian#add_to_class'

lib/topic_creator.rb:356:in 'TopicCreator#check_can_send_permission!'

lib/topic_creator.rb:305:in 'block in TopicCreator#add_users_from_scope'

activerecord (8.0.5) lib/active_record/relation/batches.rb:88:in 'Array#each'

activerecord (8.0.5) lib/active_record/relation/batches.rb:88:in 'block in ActiveRecord::Batches#find_each'

activerecord (8.0.5) lib/active_record/relation/batches.rb:172:in 'block in ActiveRecord::Batches#find_in_batches'

activerecord (8.0.5) lib/active_record/relation/batches.rb:461:in 'block in ActiveRecord::Batches#batch_on_unloaded_relation'

<internal:kernel>:168:in 'Kernel#loop'

activerecord (8.0.5) lib/active_record/relation/batches.rb:434:in 'ActiveRecord::Batches#batch_on_unloaded_relation'

activerecord (8.0.5) lib/active_record/relation/batches.rb:289:in 'ActiveRecord::Batches#in_batches'

activerecord (8.0.5) lib/active_record/relation/batches.rb:171:in 'ActiveRecord::Batches#find_in_batches'

activerecord (8.0.5) lib/active_record/relation/batches.rb:87:in 'ActiveRecord::Batches#find_each'

lib/topic_creator.rb:304:in 'TopicCreator#add_users_from_scope'

lib/topic_creator.rb:289:in 'TopicCreator#add_users'

lib/topic_creator.rb:271:in 'TopicCreator#process_private_message'

lib/topic_creator.rb:69:in 'TopicCreator#create'

lib/post_creator.rb:511:in 'PostCreator#create_topic'

lib/post_creator.rb:201:in 'block in PostCreator#create'

lib/post_creator.rb:411:in 'block in PostCreator#transaction'

activerecord (8.0.5) lib/active_record/connection_adapters/abstract/transaction.rb:626:in 'block in ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'

activesupport (8.0.5) lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'

activerecord (8.0.5) lib/active_record/connection_adapters/abstract/transaction.rb:623:in 'ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'

activerecord (8.0.5) lib/active_record/connection_adapters/abstract/database_statements.rb:367:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#within_new_transaction'

activerecord (8.0.5) lib/active_record/connection_adapters/abstract/database_statements.rb:359:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction'

activerecord (8.0.5) lib/active_record/transactions.rb:233:in 'block in ActiveRecord::Transactions::ClassMethods#transaction'

activerecord (8.0.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in 'ActiveRecord::ConnectionAdapters::ConnectionPool#with_connection'

activerecord (8.0.5) lib/active_record/connection_handling.rb:312:in 'ActiveRecord::ConnectionHandling#with_connection'

activerecord (8.0.5) lib/active_record/transactions.rb:232:in 'ActiveRecord::Transactions::ClassMethods#transaction'

lib/post_creator.rb:411:in 'PostCreator#transaction'

lib/post_creator.rb:199:in 'PostCreator#create'

lib/new_post_manager.rb:316:in 'NewPostManager#perform_create_post'

lib/new_post_manager.rb:247:in 'NewPostManager#perform'

app/controllers/posts_controller.rb:218:in 'PostsController#create'

actionpack (8.0.5) lib/action_controller/metal/basic_implicit_render.rb:8:in 'ActionController::BasicImplicitRender#send_action'

actionpack (8.0.5) lib/abstract_controller/base.rb:215:in 'AbstractController::Base#process_action'

actionpack (8.0.5) lib/action_controller/metal/rendering.rb:193:in 'ActionController::Rendering#process_action'

actionpack (8.0.5) lib/abstract_controller/callbacks.rb:261:in 'block in AbstractController::Callbacks#process_action'

activesupport (8.0.5) lib/active_support/callbacks.rb:120:in 'block in ActiveSupport::Callbacks#run_callbacks'

plugins/discourse-staff-alias/lib/discourse_staff_alias/posts_controller_extension.rb:26:in 'block (2 levels) in <module:PostsControllerExtension>'

activesupport (8.0.5) lib/active_support/callbacks.rb:129:in 'BasicObject#instance_exec'

activesupport (8.0.5) lib/active_support/callbacks.rb:129:in 'block in ActiveSupport::Callbacks#run_callbacks'

app/controllers/application_controller.rb:442:in 'block in ApplicationController#with_resolved_locale'

i18n (1.14.8) lib/i18n.rb:354:in 'I18n::Base#with_locale'

app/controllers/application_controller.rb:442:in 'ApplicationController#with_resolved_locale'

activesupport (8.0.5) lib/active_support/callbacks.rb:129:in 'block in ActiveSupport::Callbacks#run_callbacks'

app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'

activesupport (8.0.5) lib/active_support/callbacks.rb:129:in 'block in ActiveSupport::Callbacks#run_callbacks'

activesupport (8.0.5) lib/active_support/callbacks.rb:140:in 'ActiveSupport::Callbacks#run_callbacks'

actionpack (8.0.5) lib/abstract_controller/callbacks.rb:260:in 'AbstractController::Callbacks#process_action'

actionpack (8.0.5) lib/action_controller/metal/rescue.rb:27:in 'ActionController::Rescue#process_action'

actionpack (8.0.5) lib/action_controller/metal/instrumentation.rb:76:in 'block in ActionController::Instrumentation#process_action'

activesupport (8.0.5) lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'

activesupport (8.0.5) lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'

activesupport (8.0.5) lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'

actionpack (8.0.5) lib/action_controller/metal/instrumentation.rb:75:in 'ActionController::Instrumentation#process_action'

actionpack (8.0.5) lib/action_controller/metal/params_wrapper.rb:259:in 'ActionController::ParamsWrapper#process_action'

activerecord (8.0.5) lib/active_record/railties/controller_runtime.rb:39:in 'ActiveRecord::Railties::ControllerRuntime#process_action'

actionpack (8.0.5) lib/abstract_controller/base.rb:152:in 'AbstractController::Base#process'

actionview (8.0.5) lib/action_view/rendering.rb:40:in 'ActionView::Rendering#process'

rack-mini-profiler (4.0.1) lib/mini_profiler/profiling_methods.rb:116:in 'block in ActionController::Base#profile_method'[ ](https://github.com/rack/rack/blob/master/mini_profiler/profiling_methods.rb#L116)

actionpack (8.0.5) lib/action_controller/metal.rb:252:in 'ActionController::Metal#dispatch'

actionpack (8.0.5) lib/action_controller/metal.rb:335:in 'ActionController::Metal.dispatch'

actionpack (8.0.5) lib/action_dispatch/routing/route_set.rb:67:in 'ActionDispatch::Routing::RouteSet::Dispatcher#dispatch'

actionpack (8.0.5) lib/action_dispatch/routing/route_set.rb:50:in 'ActionDispatch::Routing::RouteSet::Dispatcher#serve'

actionpack (8.0.5) lib/action_dispatch/journey/router.rb:53:in 'block in ActionDispatch::Journey::Router#serve'

actionpack (8.0.5) lib/action_dispatch/journey/router.rb:133:in 'block in ActionDispatch::Journey::Router#find_routes'

actionpack (8.0.5) lib/action_dispatch/journey/router.rb:126:in 'Array#each'

actionpack (8.0.5) lib/action_dispatch/journey/router.rb:126:in 'ActionDispatch::Journey::Router#find_routes'

actionpack (8.0.5) lib/action_dispatch/journey/router.rb:34:in 'ActionDispatch::Journey::Router#serve'

actionpack (8.0.5) lib/action_dispatch/routing/route_set.rb:908:in 'ActionDispatch::Routing::RouteSet#call'

lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'

lib/middleware/crawler_hooks.rb:13:in 'Middleware::CrawlerHooks#call'

rack (2.2.23) lib/rack/tempfile_reaper.rb:15:in 'Rack::TempfileReaper#call'

rack (2.2.23) lib/rack/conditional_get.rb:40:in 'Rack::ConditionalGet#call'

rack (2.2.23) lib/rack/head.rb:12:in 'Rack::Head#call'
2개의 좋아요

음. 최신 업데이트 때문에 뭔가 깨진 것 같네요. 제가 만든 사람에게 아직 사용하고 있는지, 아니면 고칠 예산이 있는지 확신할 수 없습니다. 그 사람한테 연락이 오면 고칠게요.

원하시면 PR을 제출해 주세요.

저도 같은 현상을 보고 있습니다:


7
ArgumentError (unknown keyword: :private_message_context) lib/plugin/instance.rb:460:in 'Kernel#public_send' lib/plugin/instance.rb:460:in 'block (2 levels) in Guardian#add_to_class' lib/topic_creator
오전 6:52
7
Failed to handle exception in exception app middleware : ArgumentError : unknown keyword: :private_message_context
오전 6:52

플러그인을 비활성화하고 다시 빌드하면 DM이 복구되었습니다

PR를 가진 사람이나 제작비를 지불한 클라이언트로부터 연락을 받지 못했기 때문에, 조사할 시간을 내지 못했습니다. 다음 주에 한번 살펴볼 수도 있습니다.

1개의 좋아요

이와 관련하여 이메일을 보냈습니다.

@pmcpa 님이 필요한 업데이트를 지원해 주셔서 감사합니다. 코어 변경으로 인해 발생한 문제를 해결했으며, 스켈레톤과 린팅도 최신 버전으로 업데이트했습니다. 또한 테스트도 업데이트하여 누락되었던 몇 가지를 추가했습니다.

저는 이 기능을 직접 사용하지 않고 있으므로, 실제로 잘 작동하는 것을 확인하셨다면 알려주세요! (아마도 :100 이모지나 그 새로운 부스트 중 하나로 표현해 주시면 좋겠습니다).

2개의 좋아요

업데이트가 정상적으로 적용된 것 같습니다. 감사합니다!

2개의 좋아요

방금 애드온을 다시 활성화했는데, PMS가 여전히(또는 다시) 작동하고 있음을 확인했습니다. :slight_smile: 정말 감사합니다! :smiley:

3개의 좋아요