FIX: don't invite users with the same email as 'reply_be_email_address'
This commit is contained in:
parent
d18085c57d
commit
735017dd9f
|
@ -317,11 +317,12 @@ module Email
|
|||
def add_other_addresses(topic, sender)
|
||||
%i(to cc bcc).each do |d|
|
||||
if @mail[d] && @mail[d].address_list && @mail[d].address_list.addresses
|
||||
@mail[d].address_list.addresses.each do |address|
|
||||
@mail[d].address_list.addresses.each do |address_field|
|
||||
begin
|
||||
if user = find_or_create_user(address)
|
||||
unless topic.topic_allowed_users.where(user_id: user.id).exists? &&
|
||||
topic.topic_allowed_groups.where("group_id IN (SELECT group_id FROM group_users WHERE user_id = ?)", user.id).exists?
|
||||
email = address_field.address.downcase
|
||||
if email !~ reply_by_email_address_regex
|
||||
user = find_or_create_user(address_field)
|
||||
if can_invite?(topic, user)
|
||||
topic.topic_allowed_users.create!(user_id: user.id)
|
||||
topic.add_small_action(sender, "invited_user", user.username)
|
||||
end
|
||||
|
@ -334,6 +335,11 @@ module Email
|
|||
end
|
||||
end
|
||||
|
||||
def can_invite?(topic, user)
|
||||
!topic.topic_allowed_users.where(user_id: user.id).exists? &&
|
||||
!topic.topic_allowed_groups.where("group_id IN (SELECT group_id FROM group_users WHERE user_id = ?)", user.id).exists?
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -189,11 +189,11 @@ describe Email::Receiver do
|
|||
expect(user.name).to eq("Случайная Имя")
|
||||
end
|
||||
|
||||
it "invites everyone in the chain" do
|
||||
it "invites everyone in the chain but users whose email matches the 'reply_by_email_address'" do
|
||||
expect { process(:cc) }.to change(Topic, :count)
|
||||
emails = Topic.last.allowed_users.pluck(:email)
|
||||
expect(emails.size).to eq(5)
|
||||
expect(emails).to include("someone@else.com", "discourse@bar.com", "team@bar.com", "wat@bar.com", "42@bar.com")
|
||||
expect(emails.size).to eq(4)
|
||||
expect(emails).to include("someone@else.com", "discourse@bar.com", "team@bar.com", "wat@bar.com")
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Return-Path: <discourse@bar.com>
|
||||
From: Foo Bar <discourse@bar.com>
|
||||
To: someone@else.com
|
||||
CC: team@bar.com, wat@bar.com, 42@bar.com
|
||||
CC: team@bar.com, wat@bar.com, reply+d400310beeae61d785c2ac6a2aacb210@bar.com
|
||||
Subject: The more, the merrier
|
||||
Date: Fri, 15 Jan 2016 00:12:43 +0100
|
||||
Message-ID: <30@foo.bar.mail>
|
||||
|
|
Loading…
Reference in New Issue