From 60ad95acc464f1727cff56f5616e623613edb754 Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Wed, 25 Mar 2015 13:20:33 -0500
Subject: [PATCH] oops: Fix crashes creating a new ticket

---
 include/class.ticket.php          | 2 +-
 include/client/open.inc.php       | 4 ++--
 include/staff/ticket-open.inc.php | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/class.ticket.php b/include/class.ticket.php
index cfc167ae9..a2cee6153 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -2980,7 +2980,7 @@ implements RestrictedAccess, Threadable {
                 }
 
                 $user_form = UserForm::getUserForm()->getForm($vars);
-                $can_create = $thisstaff->getRole()->hasPerm(User::PERM_CREATE);
+                $can_create = !$thisstaff || $thisstaff->getRole()->hasPerm(User::PERM_CREATE);
                 if (!$user_form->isValid($field_filter('user'))
                     || !($user=User::fromVars($user_form->getClean(), $can_create))
                 ) {
diff --git a/include/client/open.inc.php b/include/client/open.inc.php
index e04c9f6ee..30013531f 100644
--- a/include/client/open.inc.php
+++ b/include/client/open.inc.php
@@ -16,6 +16,8 @@ if (!$info['topicId'])
 $forms = array();
 if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
     foreach ($topic->getForms() as $F) {
+        if (!$F->hasAnyVisibleFields())
+            continue;
         if ($_POST) {
             $F = $F->instanciate();
             $F->isValidForClient();
@@ -82,8 +84,6 @@ if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
     </tbody>
     <tbody id="dynamic-form">
         <?php foreach ($forms as $form) {
-            if (!$form->hasAnyVisibleFields())
-                continue;
             include(CLIENTINC_DIR . 'templates/dynamic-form.tmpl.php');
         } ?>
     </tbody>
diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php
index a6fe4c26c..80f4829e2 100644
--- a/include/staff/ticket-open.inc.php
+++ b/include/staff/ticket-open.inc.php
@@ -12,6 +12,8 @@ if (!$info['topicId'])
 $forms = array();
 if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) {
     foreach ($topic->getForms() as $F) {
+        if (!$F->hasAnyVisibleFields())
+            continue;
         if ($_POST) {
             $F = $F->instanciate();
             $F->isValidForClient();
@@ -266,8 +268,6 @@ if ($_POST)
         <tbody id="dynamic-form">
         <?php
             foreach ($forms as $form) {
-                if (!$form->hasAnyVisibleFields())
-                    continue;
                 print $form->getForm()->getMedia();
                 include(STAFFINC_DIR .  'templates/dynamic-form.tmpl.php');
             }
-- 
GitLab