userinfo['permissions'] & CANSUBMITBUGS)) { echo 'NO permission'; exit; } // ################################################################### if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'add'; } // ################################################################### if ($_POST['do'] == 'insert') { sanitize(array( 'product' => INT, 'component' => INT, 'version' => INT, 'summary' => STR_NOHTML, 'severity' => INT, 'priority' => INT, 'status' => INT, 'resolution' => INT, 'assignedto' => INT, 'comment' => STR) ); // check permissions on various input values if (!($bugsys->userinfo['permissions'] & CANCHANGESTATUS)) { $vars['priority'] = $bugsys->options['defaultpriority']; $vars['status'] = $bugsys->options['defaultstatus']; $vars['resolution'] = $bugsys->options['defaultresolve']; } else { if (!$bugsys->datastore['priority']["$vars[priority]"]) { $vars['priority'] = $bugsys->options['defaultpriority']; } if (!$bugsys->datastore['status']["$vars[status]"]) { $vars['status'] = $bugsys->options['defaultstatus']; } if (!$bugsys->datastore['resolution']["$vars[resolution]"]) { $vars['resolution'] = $bugsys->options['defaultresolve']; } } if (!($bugsys->userinfo['permissions'] & CANASSIGN)) { $vars['assignedto'] = $bugsys->options['defaultassign']; } else { // assigned person is not a dev or a valid user if (!$bugsys->datastore['assignto']["$vars[assignedto]"]['userid']) { $vars['assignedto'] = $bugsys->options['defaultassign']; } } if (!$vars['product'] OR !$vars['component'] OR !$vars['version']) { echo 'there was a problem selecting the product, component, or version'; exit; } if (!$vars['summary']) { echo 'please enter a bug title'; exit; } if (!$vars['comment']) { echo 'please enter a bug description'; exit; } $product = $bugsys->datastore['product']["$vars[product]"]; if (!$product) { echo 'please select a valid product'; exit; } $version = $bugsys->datastore['version']["$vars[version]"]; if (!$version) { echo 'please select a valid version'; exit; } // no component if ($vars['component'] == -1) { // not global version and version.productid != product.productid if ($version['productid'] != 0 AND $version['productid'] != $product['productid']) { echo 'invalid version specified'; exit; } } // using a component else { $component = $bugsys->datastore['product']["$vars[component]"]; // component has the right mother if ($component['componentmother'] == $product['productid']) { // version.productid != {component.productid | product.productid} if ($version['productid'] != $component['productid'] AND $version['productid'] != $product['productid']) { echo 'invalid version specified'; exit; } } else { echo 'invalid component specified'; exit; } } if (!$bugsys->options['allowhtml']) { $vars['comment'] = htmlspecialcharslike($vars['comment']); } // create the bug report $DB_sql->query(" INSERT INTO " . TABLE_PREFIX . "bug (userid, productid, componentid, versionid, summary, severity, priority, status, assignedto, resolution) VALUES (" . $bugsys->userinfo['userid'] . ", $vars[product], $vars[component], $vars[version], '" . addslasheslike($vars['summary']) . "', $vars[severity], $vars[priority], $vars[status], $vars[assignedto], $vars[resolution] )" ); $bugid = $DB_sql->insert_id(); // insert the comment to the database $DB_sql->query(" INSERT INTO " . TABLE_PREFIX . "comment (bugid, userid, dateline, comment ## comment_parsed -- not using, ATM ### ) VALUES ($bugid, " . $bugsys->userinfo['userid'] . ", " . time() . ", '" . addslasheslike($vars['comment']) . "' )" ); echo 'bug is done!'; } // ################################################################### if ($_REQUEST['do'] == 'add') { sanitize(array( 'product' => INT, 'component' => INT, 'version' => INT) ); // the user can hit the back button without reposting data... if (!$vars['product'] OR !$vars['component'] OR !$vars['version']) { $method = 'get'; } else { $method = 'post'; } echo '
'; $do = 'add'; if (!$vars['product']) { echo 'Product: '; } else if (!$vars['component']) { echo 'Component: '; echo ''; } else if (!$vars['version']) { echo 'Version: '; echo ''; echo ''; } else { $do = 'insert'; echo '
Summary/Title:
'; echo '
Severity:
'; if ($bugsys->userinfo['permissions'] & CANCHANGESTATUS) { echo '
Priority:
'; echo '
Status:
'; echo '
Resolution:
'; } if ($bugsys->userinfo['permissions'] & CANASSIGN) { echo '
Assigned to:
'; } echo '
Detailed description:
'; echo ''; echo ''; echo ''; } echo '
'; echo '
'; } /*=====================================================================*\ || ################################################################### || # $HeadURL$ || # $Id$ || ################################################################### \*=====================================================================*/ ?>