From b4f296267ce3a332ee95d1cb380f47e3643d8ddb Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Fri, 17 Jan 2014 09:53:17 -0600 Subject: [PATCH] filters: Unpack the user information before filter If a user is created / selected before opening a ticket (very likely the case in the SCP), the email address and name should be unpacked into the $vars dictionary prior to creating and processing ticket filters --- include/class.ticket.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/include/class.ticket.php b/include/class.ticket.php index da868d752..7b2f92784 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -1970,11 +1970,17 @@ class Ticket { $vars['field.'.$f->get('id')] = $f->toString($f->getClean()); // Unpack the basic user information - $interesting = array('name', 'email'); - $user_form = UserForm::getUserForm()->getForm($vars); - foreach ($user_form->getFields() as $f) - if (in_array($f->get('name'), $interesting)) - $vars[$f->get('name')] = $f->toString($f->getClean()); + if ($vars['uid'] && ($user = User::lookup($vars['uid']))) { + $vars['email'] = $user->getEmail(); + $vars['name'] = $user->getName(); + } + else { + $interesting = array('name', 'email'); + $user_form = UserForm::getUserForm()->getForm($vars); + foreach ($user_form->getFields() as $f) + if (in_array($f->get('name'), $interesting)) + $vars[$f->get('name')] = $f->toString($f->getClean()); + } //Init ticket filters... $ticket_filter = new TicketFilter($origin, $vars); @@ -2027,11 +2033,6 @@ class Ticket { if (!$errors) { - if ($vars['uid'] && ($user = User::lookup($vars['uid']))) { - $vars['email'] = $user->getEmail(); - $vars['name'] = $user->getName(); - } - # Perform ticket filter actions on the new ticket arguments if ($ticket_filter) $ticket_filter->apply($vars); -- GitLab