From 530d5427341f0d561f8b142e29b3e189fd17f00e Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Fri, 11 Apr 2014 17:21:03 -0500
Subject: [PATCH] Fixup merging of email recipients

This stems from a confusing similarity between the + operator for arrays
and array_merge() in php. Adding arrays will ignore items in the RHS where
keys are present in the LHS. Therefore, when adding numerically indexed
arrays together, only items on the RHS that have a key higher than the
greatest key on the LHS will be included.
---
 include/class.ticket.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/class.ticket.php b/include/class.ticket.php
index edfd8c512..0bf1e57d7 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1142,7 +1142,7 @@ class Ticket {
                 $recipients[] = $assignee;
         } elseif(!strcasecmp(get_class($assignee), 'Team')) {
             if($cfg->alertTeamMembersONAssignment() && ($members=$assignee->getMembers()))
-                $recipients+=$members;
+                $recipients = array_merge($recipients, $members);
             elseif($cfg->alertTeamLeadONAssignment() && ($lead=$assignee->getTeamLead()))
                 $recipients[] = $lead;
         }
@@ -1398,11 +1398,11 @@ class Ticket {
                 if($this->getStaffId())
                     $recipients[]=$this->getStaff();
                 elseif($this->getTeamId() && ($team=$this->getTeam()) && ($members=$team->getMembers()))
-                    $recipients+=$members;
+                    $recipients = array_merge($recipients, $members);
             } elseif($cfg->alertDeptMembersONTransfer() && !$this->isAssigned()) {
                 //Only alerts dept members if the ticket is NOT assigned.
                 if(($members=$dept->getMembers()))
-                    $recipients+=$members;
+                    $recipients = array_merge($recipients, $members);
             }
 
             //Always alert dept manager??
-- 
GitLab