diff --git a/include/class.ticket.php b/include/class.ticket.php index f1fb1f3bbadec4c7273fd5c9c855f8dfb7de125c..ed80d6b78d36fc09bb78f9acadeaab5cb697bcfd 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -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 $form = TicketForm::getNewInstance(); // If submitting via email, ensure we have a subject and such @@ -2192,13 +2166,46 @@ class Ticket { $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... $ticket_filter = new TicketFilter($origin, $vars); // Make sure email contents should not be rejected if($ticket_filter && ($filter=$ticket_filter->shouldReject())) { - $errors['err']='Ticket denied. Error #403'; - $errors['errno'] = 403; + $errors = array( + 'errno' => 403, + 'err' => "This help desk is for use by authorized users + only"); $ost->logWarning('Ticket denied', sprintf('Ticket rejected ( %s) by filter "%s"', $vars['email'], $filter->getName())); diff --git a/include/client/view.inc.php b/include/client/view.inc.php index a369ee75db623f3583934048db3902f4bb538b82..469740f6c7e60d1c434d8b1d9709c4c27fcfe89e 100644 --- a/include/client/view.inc.php +++ b/include/client/view.inc.php @@ -31,7 +31,7 @@ if(!$dept || !$dept->isPublic()) </tr> <tr> <th>Department:</th> - <td><?php echo Format::htmlchars($dept->getName()); ?></td> + <td><?php echo Format::htmlchars($dept instanceof Dept ? $dept->getName() : ''); ?></td> </tr> <tr> <th>Create Date:</th>