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

Unpack user information before checking overlimit & banlist

parent 70fbd04f
Branches
Tags
No related merge requests found
...@@ -2137,32 +2137,6 @@ class Ticket { ...@@ -2137,32 +2137,6 @@ class Ticket {
} }
}; };
//Check for 403
if ($vars['email'] && Validator::is_email($vars['email'])) {
//Make sure the email address is not banned
if(TicketFilter::isBanned($vars['email'])) {
$errors['err']='Ticket denied. Error #403';
$errors['errno'] = 403;
$ost->logWarning('Ticket denied', 'Banned email - '.$vars['email']);
return 0;
}
//Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
if($cfg->getMaxOpenTickets()>0 && strcasecmp($origin,'staff')
&& ($user=TicketUser::lookupByEmail($vars['email']))
&& ($openTickets=$user->getNumOpenTickets())
&& ($openTickets>=$cfg->getMaxOpenTickets()) ) {
$errors['err']="You've reached the maximum open tickets allowed.";
$ost->logWarning('Ticket denied -'.$vars['email'],
sprintf('Max open tickets (%d) reached for %s ',
$cfg->getMaxOpenTickets(), $vars['email']));
return 0;
}
}
// Create and verify the dynamic form entry for the new ticket // Create and verify the dynamic form entry for the new ticket
$form = TicketForm::getNewInstance(); $form = TicketForm::getNewInstance();
// If submitting via email, ensure we have a subject and such // If submitting via email, ensure we have a subject and such
...@@ -2192,13 +2166,46 @@ class Ticket { ...@@ -2192,13 +2166,46 @@ class Ticket {
$vars[$f->get('name')] = $f->toString($f->getClean()); $vars[$f->get('name')] = $f->toString($f->getClean());
} }
//Check for 403
if ($vars['email']
&& Validator::is_email($vars['email'])) {
//Make sure the email address is not banned
if (TicketFilter::isBanned($vars['email'])) {
$errors = array(
'errno' => 403,
'err' => 'This help desk is for use by authorized
users only');
$ost->logWarning('Ticket denied', 'Banned email - '.$vars['email']);
return 0;
}
//Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
if ($cfg->getMaxOpenTickets() > 0
&& strcasecmp($origin, 'staff')
&& ($_user=TicketUser::lookupByEmail($vars['email']))
&& ($openTickets=$_user->getNumOpenTickets())
&& ($openTickets>=$cfg->getMaxOpenTickets()) ) {
$errors = array('err' => "You've reached the maximum open tickets allowed.");
$ost->logWarning('Ticket denied -'.$vars['email'],
sprintf('Max open tickets (%d) reached for %s ',
$cfg->getMaxOpenTickets(), $vars['email']));
return 0;
}
}
//Init ticket filters... //Init ticket filters...
$ticket_filter = new TicketFilter($origin, $vars); $ticket_filter = new TicketFilter($origin, $vars);
// Make sure email contents should not be rejected // Make sure email contents should not be rejected
if($ticket_filter if($ticket_filter
&& ($filter=$ticket_filter->shouldReject())) { && ($filter=$ticket_filter->shouldReject())) {
$errors['err']='Ticket denied. Error #403'; $errors = array(
$errors['errno'] = 403; 'errno' => 403,
'err' => "This help desk is for use by authorized users
only");
$ost->logWarning('Ticket denied', $ost->logWarning('Ticket denied',
sprintf('Ticket rejected ( %s) by filter "%s"', sprintf('Ticket rejected ( %s) by filter "%s"',
$vars['email'], $filter->getName())); $vars['email'], $filter->getName()));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment