error_permission(); } // ################################################################### // ------------------------------------------------------------------- // get the report $bug = $db->query_first(" SELECT bug.*, user.displayname, user.email, user.showemail FROM " . TABLE_PREFIX . "bug AS bug LEFT JOIN " . TABLE_PREFIX . "user AS user ON (bug.userid = user.userid) WHERE bug.bugid = " . intval($bugsys->in['bugid']) ); if (!is_array($bug)) { $message->error('alert: bad bug'); } if ($bug['hidden'] AND !can_perform('canviewhidden')) { $message->error_permission(); } // ------------------------------------------------------------------- // prep display $bug['userinfo'] = construct_user_display($bug); $bug['product'] = $bugsys->datastore['product']["$bug[productid]"]['title']; $bug['component'] = (($bug['componentid']) ? $bugsys->datastore['product']["$bug[componentid]"]['title'] : ''); $bug['version'] = $bugsys->datastore['version']["$bug[versionid]"]['version']; $bug['status'] = $bugsys->datastore['status']["$bug[status]"]['status']; $bug['resolution'] = $bugsys->datastore['resolution']["$bug[resolution]"]['resolution']; $bug['severity'] = $bugsys->datastore['severity']["$bug[severity]"]['severity']; $bug['priority'] = $bugsys->datastore['priority']["$bug[priority]"]['priority']; $assigninfo = $bugsys->datastore['assignto']["$bug[assignedto]"]; $bug['assigninfo'] = ((is_array($assigninfo)) ? construct_user_display($assigninfo) : ''); $show['editreport'] = ((((can_perform('caneditown') AND $bugsys->userinfo['userid'] == $comment['userid']) OR can_perform('caneditothers')) AND can_perform('caneditinfo')) ? true : false); $duplicateof = $db->query_first("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]"); $duplicates = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE duplicateof = $bug[bugid]"); while ($duplicate = $db->fetch_array($duplicates)) { $dupelist[] = "$duplicate[summary]"; } $dupelist = implode(', ', $dupelist); if ($bug['dependency']) { $dependencies = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid IN ($bug[dependency])"); while ($dependency = $db->fetch_array($dependencies)) { $depends[] = "$dependency[bugid]"; } $dependencies = implode(' ', $depends); } $favourite = (bool)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "favourite WHERE bugid = $bug[bugid] AND userid = " . $bugsys->userinfo['userid']); $favouritetext = (($favourite) ? 'Remove from Favourites' : 'Add to Favourites'); // ------------------------------------------------------------------- // custom fields $customfields = ''; $allfields = $db->query(" SELECT bugfield.* FROM " . TABLE_PREFIX . "bugfield AS bugfield LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission ON (bugfield.fieldid = permission.fieldid) WHERE permission.mask <> 0 AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}" ); while ($field = $db->fetch_array($allfields)) { $fieldlist["$field[fieldid]"] = $field; } $fieldvalues = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]"); foreach ($fieldlist AS $fieldid => $field) { if (is_null($fieldvalues["field$fieldid"])) { if ($field['type'] == 'select_single') { if ($field['usedefault']) { $temp = unserialize($field['selects']); $value = trim($temp[0]); } else { continue; } } else { $value = $field['defaultvalue']; } } else { $value = $fieldvalues["field$fieldid"]; } $customfields .= "