mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: new 'block_auto_generated_emails' site setting
This commit is contained in:
@@ -56,6 +56,7 @@ module Email
|
||||
end
|
||||
|
||||
def process_internal
|
||||
raise BouncedEmailError if @mail.bounced? && !@mail.retryable?
|
||||
raise ScreenedEmailError if ScreenedEmail.should_block?(@from_email)
|
||||
|
||||
user = find_or_create_user(@from_email, @from_display_name)
|
||||
@@ -64,15 +65,19 @@ module Email
|
||||
|
||||
@incoming_email.update_columns(user_id: user.id)
|
||||
|
||||
raise InactiveUserError if !user.active && !user.staged
|
||||
raise BlockedUserError if user.blocked
|
||||
|
||||
body, @elided = select_body
|
||||
body ||= ""
|
||||
|
||||
raise BouncedEmailError if (@mail.bounced? && !@mail.retryable?)
|
||||
raise AutoGeneratedEmailReplyError if check_reply_to_auto_generated_header
|
||||
raise AutoGeneratedEmailError if is_auto_generated?
|
||||
raise NoBodyDetectedError if body.blank? && !@mail.has_attachments?
|
||||
raise InactiveUserError if !user.active && !user.staged
|
||||
raise BlockedUserError if user.blocked
|
||||
raise NoBodyDetectedError if body.blank? && !@mail.has_attachments?
|
||||
|
||||
if is_auto_generated?
|
||||
@incoming_email.update_columns(is_auto_generated: true)
|
||||
raise AutoGeneratedEmailReplyError if check_reply_to_auto_generated_header
|
||||
raise AutoGeneratedEmailError if SiteSetting.block_auto_generated_emails?
|
||||
end
|
||||
|
||||
if action = subscription_action_for(body, subject)
|
||||
message = SubscriptionMailer.send(action, user)
|
||||
|
||||
@@ -348,7 +348,7 @@ class TopicView
|
||||
visible_types = Topic.visible_post_types(@user)
|
||||
|
||||
if @user.present?
|
||||
posts.where("user_id = ? OR post_type IN (?)", @user.id, visible_types)
|
||||
posts.where("posts.user_id = ? OR post_type IN (?)", @user.id, visible_types)
|
||||
else
|
||||
posts.where(post_type: visible_types)
|
||||
end
|
||||
@@ -357,7 +357,7 @@ class TopicView
|
||||
def filter_posts_by_ids(post_ids)
|
||||
# TODO: Sort might be off
|
||||
@posts = Post.where(id: post_ids, topic_id: @topic.id)
|
||||
.includes(:user, :reply_to_user)
|
||||
.includes(:user, :reply_to_user, :incoming_email)
|
||||
.order('sort_order')
|
||||
@posts = filter_post_types(@posts)
|
||||
@posts = @posts.with_deleted if @guardian.can_see_deleted_posts?
|
||||
|
||||
Reference in New Issue
Block a user