mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Pass topic to TopicView.add_post_custom_fields_allowlister
(#14678)
Allows custom fields to be loaded based on the attributes of a topic.
This commit is contained in:
parent
c7703cec2f
commit
d1201d6188
@ -326,8 +326,8 @@ class Plugin::Instance
|
||||
# Add a post_custom_fields_allowlister block to the TopicView, respecting if the plugin is enabled
|
||||
def topic_view_post_custom_fields_allowlister(&block)
|
||||
reloadable_patch do |plugin|
|
||||
::TopicView.add_post_custom_fields_allowlister do |user|
|
||||
plugin.enabled? ? block.call(user) : []
|
||||
::TopicView.add_post_custom_fields_allowlister do |user, topic|
|
||||
plugin.enabled? ? block.call(user, topic) : []
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -65,8 +65,8 @@ class TopicView
|
||||
post_custom_fields_allowlisters << block
|
||||
end
|
||||
|
||||
def self.allowed_post_custom_fields(user)
|
||||
wpcf = default_post_custom_fields + post_custom_fields_allowlisters.map { |w| w.call(user) }
|
||||
def self.allowed_post_custom_fields(user, topic)
|
||||
wpcf = default_post_custom_fields + post_custom_fields_allowlisters.map { |w| w.call(user, topic) }
|
||||
wpcf.flatten.uniq
|
||||
end
|
||||
|
||||
@ -116,7 +116,7 @@ class TopicView
|
||||
@user_custom_fields = User.custom_fields_for_ids(@posts.pluck(:user_id), added_fields)
|
||||
end
|
||||
|
||||
if (allowed_fields = TopicView.allowed_post_custom_fields(@user)).present?
|
||||
if (allowed_fields = TopicView.allowed_post_custom_fields(@user, @topic)).present?
|
||||
@post_custom_fields = Post.custom_fields_for_ids(@posts.pluck(:id), allowed_fields)
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user