mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
FEATURE: automatically close topics with 10k+ posts
FEATURE: automatically close messages with 2k+ posts Both configurable via `auto_close_messages_post_count` and `auto_close_topics_post_count`
This commit is contained in:
parent
22b2f5285c
commit
0113fce420
4 changed files with 58 additions and 0 deletions
|
@ -148,6 +148,8 @@ class PostCreator
|
|||
BadgeGranter.queue_badge_grant(Badge::Trigger::PostRevision, post: @post)
|
||||
|
||||
trigger_after_events(@post)
|
||||
|
||||
auto_close
|
||||
end
|
||||
|
||||
if @post || @spam
|
||||
|
@ -221,6 +223,26 @@ class PostCreator
|
|||
DiscourseEvent.trigger(:post_created, post, @opts, @user)
|
||||
end
|
||||
|
||||
def auto_close
|
||||
if @post.topic.private_message? &&
|
||||
!@post.topic.closed &&
|
||||
SiteSetting.auto_close_messages_post_count > 0 &&
|
||||
SiteSetting.auto_close_messages_post_count <= @post.topic.posts_count
|
||||
|
||||
@post.topic.update_status(:closed, true, Discourse.system_user,
|
||||
message: I18n.t('topic_statuses.autoclosed_message_max_posts', count: SiteSetting.auto_close_messages_post_count))
|
||||
|
||||
elsif !@post.topic.private_message? &&
|
||||
!@post.topic.closed &&
|
||||
SiteSetting.auto_close_topics_post_count > 0 &&
|
||||
SiteSetting.auto_close_topics_post_count <= @post.topic.posts_count
|
||||
|
||||
@post.topic.update_status(:closed, true, Discourse.system_user,
|
||||
message: I18n.t('topic_statuses.autoclosed_topic_max_posts', count: SiteSetting.auto_close_messages_post_count))
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
def transaction(&blk)
|
||||
Post.transaction do
|
||||
if new_topic?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue