mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:31:12 +08:00
FIX: supports groups field in post_created_edited (#28773)
To achieve this this commit does the following: - create a new `groups field, ideally we would have reused the existing group field, but many automations now have the expectation that this field will return a group id and not an array of group ids, which makes it a dangerous change - alter the code in `post_created_edited` to use this new groups field and change the logic to use an array - migrate the existing group fields post_created_edited automations to change name from `restricted_group` to `restricted_groups`, the component from `group` to `groups` and the metadata from `{"value": integer}` to `{"value": [integer]}`
This commit is contained in:
@ -54,15 +54,15 @@ module DiscourseAutomation
|
||||
next if (restricted_tags["value"] & topic.tags.map(&:name)).empty?
|
||||
end
|
||||
|
||||
restricted_group_id = automation.trigger_field("restricted_group")["value"]
|
||||
if restricted_group_id.present?
|
||||
restricted_group_ids = automation.trigger_field("restricted_groups")["value"]
|
||||
if restricted_group_ids.present?
|
||||
next if !topic.private_message?
|
||||
|
||||
target_group_ids = topic.allowed_groups.pluck(:id)
|
||||
next if restricted_group_id != target_group_ids.first
|
||||
next if (restricted_group_ids & target_group_ids).empty?
|
||||
|
||||
ignore_group_members = automation.trigger_field("ignore_group_members")
|
||||
next if ignore_group_members["value"] && post.user.in_any_groups?([restricted_group_id])
|
||||
ignore_group_members = automation.trigger_field("ignore_group_members")["value"]
|
||||
next if ignore_group_members && post.user.in_any_groups?(restricted_group_ids)
|
||||
end
|
||||
|
||||
ignore_automated = automation.trigger_field("ignore_automated")
|
||||
|
@ -14,7 +14,7 @@ DiscourseAutomation::Triggerable.add(DiscourseAutomation::Triggers::POST_CREATED
|
||||
}
|
||||
field :restricted_category, component: :category
|
||||
field :restricted_tags, component: :tags
|
||||
field :restricted_group, component: :group
|
||||
field :restricted_groups, component: :groups
|
||||
field :ignore_automated, component: :boolean
|
||||
field :ignore_group_members, component: :boolean
|
||||
field :valid_trust_levels, component: :"trust-levels"
|
||||
|
Reference in New Issue
Block a user