FEATURE: auto archive group message if topic is closed. (#9046)

Co-Authored-By: Régis Hanol <regis@hanol.fr>
This commit is contained in:
Vinoth Kannan
2020-02-27 11:09:37 +05:30
committed by GitHub
parent 5774107a2d
commit acf337d583
2 changed files with 19 additions and 0 deletions

View File

@ -502,6 +502,17 @@ class Topic < ActiveRecord::Base
def update_status(status, enabled, user, opts = {})
TopicStatusUpdater.new(self, user).update!(status, enabled, opts)
DiscourseEvent.trigger(:topic_status_updated, self, status, enabled)
if enabled && private_message? && status.to_s["closed"]
group_ids = user.groups.pluck(:id)
if group_ids.present?
allowed_group_ids = self.allowed_groups
.where('topic_allowed_groups.group_id IN (?)', group_ids).pluck(:id)
allowed_group_ids.each do |id|
GroupArchivedMessage.archive!(id, self)
end
end
end
end
# Atomically creates the next post number