Fixes issue #1996 - Use of wrong recipient if sender is also an agent (verify all recipient in to of article of there is a local address somewhere - not only the first one).

This commit is contained in:
Martin Edenhofer 2018-05-07 14:30:39 +02:00
parent b48a8c9b42
commit 7b01f6e538
2 changed files with 42 additions and 1 deletions

View file

@ -994,7 +994,9 @@ class App.Utils
if !_.isEmpty(article.to)
recipients = App.Utils.parseAddressListLocal(article.to)
if recipients && recipients[0]
recipientIsLocal = isLocalAddress(recipients[0])
for localRecipient in recipients
recipientIsLocal = isLocalAddress(localRecipient)
break if recipientIsLocal is true
# sender is local
if senderIsLocal

View file

@ -2603,6 +2603,45 @@ test('check getRecipientArticle format', function() {
verify = App.Utils.getRecipientArticle(ticket, article, agent, article.type, email_addresses, false)
deepEqual(verify, result)
agent = {
login: 'login',
firstname: 'firstname',
lastname: 'lastname',
email: 'agent@example.com',
}
ticket = {
customer: agent,
}
article = {
message_id: 'message_id20',
created_by: agent,
type: {
name: 'email',
},
sender: {
name: 'Agent',
},
from: 'Agent <Agent@Example.com>',
to: 'somebodyelse@example.com, Zammad <zammad@example.com>',
cc: '',
}
result = {
to: 'agent@example.com',
cc: '',
body: '',
in_reply_to: 'message_id20',
}
email_addresses = [
{
email: 'zammad@example.com',
},
{
email: 'zammad2@example.com',
}
]
verify = App.Utils.getRecipientArticle(ticket, article, agent, article.type, email_addresses, false)
deepEqual(verify, result)
});
}