FIX: Do not assign the same user more than once

This prevents resending assignment notification emails.
This commit is contained in:
Gerhard Schlager 2019-01-04 21:24:08 +01:00
parent b20b4c088d
commit a308e2a445
2 changed files with 15 additions and 0 deletions

View File

@ -131,6 +131,8 @@ SQL
end
def assign(assign_to, silent: false)
return false if @topic.custom_fields[ASSIGNED_TO_ID] == assign_to.id.to_s
@topic.custom_fields[ASSIGNED_TO_ID] = assign_to.id
@topic.custom_fields[ASSIGNED_BY_ID] = @assigned_by.id
@topic.save_custom_fields

View File

@ -114,6 +114,19 @@ RSpec.describe TopicAssigner do
.to eq(moderator.id)
end
end
it "doesn't assign the same user more than once" do
SiteSetting.assign_mailer_enabled = true
Email::Sender.any_instance.expects(:send).once
expect(assigner.assign(moderator)).to eq(true)
Email::Sender.any_instance.expects(:send).never
expect(assigner.assign(moderator)).to eq(false)
Email::Sender.any_instance.expects(:send).once
expect(assigner.assign(Fabricate(:moderator))).to eq(true)
end
end
context "unassign_on_close" do