Skip to content
Snippets Groups Projects
Commit dfddf1d5 authored by Peter Rotich's avatar Peter Rotich
Browse files

Merge pull request #1943 from greezybacon/issue/1937


filters: Filter user information for email tickets

Reviewed-By: default avatarPeter Rotich <peter@osticket.com>
parents 06d3a0f3 e76d1444
No related branches found
No related tags found
No related merge requests found
...@@ -1220,7 +1220,7 @@ class SelectionField extends FormField { ...@@ -1220,7 +1220,7 @@ class SelectionField extends FormField {
} }
function toString($items) { function toString($items) {
return ($items && is_array($items)) return is_array($items)
? implode(', ', $items) : (string) $items; ? implode(', ', $items) : (string) $items;
} }
......
...@@ -2426,24 +2426,33 @@ class Ticket { ...@@ -2426,24 +2426,33 @@ class Ticket {
} }
} }
if (!$user) {
$interesting = array('name', 'email');
$user_form = UserForm::getUserForm()->getForm($vars);
// Add all the user-entered info for filtering
foreach ($interesting as $F) {
$field = $user_form->getField($F);
$vars[$F] = $field->toString($field->getClean());
}
// Attempt to lookup the user and associated data
$user = User::lookupByEmail($vars['email']);
}
// Add in user and organization data for filtering // Add in user and organization data for filtering
if ($user) { if ($user) {
$vars += $user->getFilterData(); $vars += $user->getFilterData();
$vars['email'] = $user->getEmail(); $vars['email'] = $user->getEmail();
$vars['name'] = $user->getName(); $vars['name'] = $user->getName()->getOriginal();
if ($org = $user->getOrganization()) { if ($org = $user->getOrganization()) {
$vars += $org->getFilterData(); $vars += $org->getFilterData();
} }
} }
// Unpack the basic user information // Don't include org information based solely on email domain
// for existing user instances
else { else {
$interesting = array('name', 'email'); // Unpack all known user info from the request
$user_form = UserForm::getUserForm()->getForm($vars);
// Add all the user-entered info for filtering
foreach ($user_form->getFields() as $f) { foreach ($user_form->getFields() as $f) {
$vars['field.'.$f->get('id')] = $f->toString($f->getClean()); $vars['field.'.$f->get('id')] = $f->toString($f->getClean());
if (in_array($f->get('name'), $interesting))
$vars[$f->get('name')] = $vars['field.'.$f->get('id')];
} }
// Add in organization data if one exists for this email domain // Add in organization data if one exists for this email domain
list($mailbox, $domain) = explode('@', $vars['email'], 2); list($mailbox, $domain) = explode('@', $vars['email'], 2);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment