FEATURE: new 'block_auto_generated_emails' site setting

This commit is contained in:
Régis Hanol
2016-04-20 21:29:27 +02:00
parent f62ffce03b
commit 4960b62110
16 changed files with 81 additions and 23 deletions

View File

@@ -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)

View File

@@ -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?