Fixed issue #2923 - Zammad should not inform himself.
This commit is contained in:
parent
92f7d9307c
commit
1ab179f22f
2 changed files with 51 additions and 0 deletions
|
@ -1411,6 +1411,9 @@ result
|
||||||
email_address_validation = EmailAddressValidation.new(recipient_email)
|
email_address_validation = EmailAddressValidation.new(recipient_email)
|
||||||
next if !email_address_validation.valid_format?
|
next if !email_address_validation.valid_format?
|
||||||
|
|
||||||
|
# do not send notification if system address
|
||||||
|
next if EmailAddress.exists?(email: recipient_email.downcase)
|
||||||
|
|
||||||
# do not sent notifications to this recipients
|
# do not sent notifications to this recipients
|
||||||
send_no_auto_response_reg_exp = Setting.get('send_no_auto_response_reg_exp')
|
send_no_auto_response_reg_exp = Setting.get('send_no_auto_response_reg_exp')
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -293,6 +293,54 @@ RSpec.describe Trigger, type: :model do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with article last sender equals system address' do
|
||||||
|
let!(:ticket) { create(:ticket) }
|
||||||
|
let(:perform) do
|
||||||
|
{
|
||||||
|
'notification.email' => {
|
||||||
|
'recipient' => 'article_last_sender',
|
||||||
|
'subject' => 'foo last sender',
|
||||||
|
'body' => 'some body with >snip<#{article.body_as_html}>/snip<', # rubocop:disable Lint/InterpolationCheck
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
let(:condition) do
|
||||||
|
{ 'ticket.state_id' => { 'operator' => 'is', 'value' => Ticket::State.all.pluck(:id) } }
|
||||||
|
end
|
||||||
|
let!(:system_address) do
|
||||||
|
create(:email_address)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'article with from equal to the a system address' do
|
||||||
|
let!(:article) do
|
||||||
|
create(:ticket_article,
|
||||||
|
ticket: ticket,
|
||||||
|
from: system_address.email,)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does not trigger because of the last article is created my system address' do
|
||||||
|
expect { Observer::Transaction.commit }.to change { ticket.reload.articles.count }.by(0)
|
||||||
|
expect(Ticket::Article.where(ticket: ticket).last.subject).not_to eq('foo last sender')
|
||||||
|
expect(Ticket::Article.where(ticket: ticket).last.to).not_to eq(system_address.email)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'article with reply_to equal to the a system address' do
|
||||||
|
let!(:article) do
|
||||||
|
create(:ticket_article,
|
||||||
|
ticket: ticket,
|
||||||
|
from: system_address.email,
|
||||||
|
reply_to: system_address.email,)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'does not trigger because of the last article is created my system address' do
|
||||||
|
expect { Observer::Transaction.commit }.to change { ticket.reload.articles.count }.by(0)
|
||||||
|
expect(Ticket::Article.where(ticket: ticket).last.subject).not_to eq('foo last sender')
|
||||||
|
expect(Ticket::Article.where(ticket: ticket).last.to).not_to eq(system_address.email)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with pre condition current_user.id' do
|
context 'with pre condition current_user.id' do
|
||||||
|
|
Loading…
Reference in a new issue