$assign =& datamanager_init('Pt_IssueAssign', $vbulletin, ERRTYPE_SILENT); $assign->set_info('project', $project); $assign->set('userid', $userid); $assign->set('issueid', $issue['issueid']); $assign->save(); } foreach ($assign_remove as $userid) { $data = array('userid' => $userid, 'issueid' => $issue['issueid']); $assign =& datamanager_init('Pt_IssueAssign', $vbulletin, ERRTYPE_SILENT); $assign->set_existing($data); $assign->delete(); } break; } $issuedata->save(); $issue = verify_issue($issue['issueid']); $_POST['do'] = 'fetch'; } // ####################################################################### if ($_POST['do'] == 'fetch') { $xml =& new vB_AJAX_XML_Builder($vbulletin, 'text/xml'); $xml->add_group('ajax'); ($hook = vBulletinHook::fetch_hook('projectajax_fetch_start')) ? eval($hook) : false; switch ($vbulletin->GPC['field']) { // #### SIMPLE SELECTS #### // ########### ISSUE STATUS ID ########### case 'issuestatusid': if (!$posting_perms['status_edit']) { $xml->add_tag('error', ''); } else { // find all the statuses for this issue's type
default: $lastpart = ''; } } } } else { $do = 'index'; } // ####################################################################### if (!($vbulletin->userinfo['permissions']['ptpermissions'] & $vbulletin->bf_ugp_ptpermissions['canviewprojecttools'])) { exec_header_redirect($vbulletin->options['bburl'] . '/archive/index.php'); exit; } if ($issueid) { $do = 'issue'; $issue = verify_issue($issueid); $project = verify_project($issue['projectid']); $title = "{$issue['title']} [{$vbphrase['archive']}]" . ($p > 1 ? ' - ' . construct_phrase($vbphrase['page_x'], $p) : '') . " - {$title}"; $metatags = "<meta name=\"keywords\" content=\"{$issue['title']}, {$project['title_clean']}, project tools, " . $vbulletin->options['keywords'] . "\" />\r\n\t\t<meta name=\"description\" content=\"[{$vbphrase['archive']}] {$issue['title']} " . ($p > 1 ? construct_phrase($vbphrase['page_x'], $p) . " " : "") . "\" />\r\n\t"; } else { if ($projectid) { $do = 'project'; $project = verify_project($projectid); $perms_query = build_issue_permissions_query($vbulletin->userinfo); if (empty($perms_query["{$project['projectid']}"])) { exit; } $title = "{$project['title_clean']} [{$vbphrase['archive']}]" . ($p > 1 ? ' - ' . construct_phrase($vbphrase['page_x'], $p) : '') . " - {$title}"; $metatags = "<meta name=\"keywords\" content=\"{$project['title_clean']}, project tools, " . $vbulletin->options['keywords'] . "\" />\r\n\t\t<meta name=\"description\" content=\"[{$vbphrase['archive']}] {$project['summary_clean']} " . ($p > 1 ? construct_phrase($vbphrase['page_x'], $p) . " " : "") . "\" />\r\n\t"; } else { $do = 'index';
} require_once DIR . '/includes/functions_projecttools.php'; if (!($vbulletin->userinfo['permissions']['ptpermissions'] & $vbulletin->bf_ugp_ptpermissions['canviewprojecttools'])) { print_no_permission(); } ($hook = vBulletinHook::fetch_hook('projectattachment_start')) ? eval($hook) : false; // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## $vbulletin->input->clean_array_gpc('r', array('attachmentid' => TYPE_UINT, 'thumb' => TYPE_BOOL)); $idname = $vbphrase['attachment']; $imagetype = !empty($vbulletin->GPC['thumb']) ? 'thumbnail' : 'filedata'; if (!($attachmentinfo = $db->query_first_slave("\r\n\tSELECT issueattach.filename, issueattach.issueid, issueattach.userid, issueattach.attachmentid,\r\n\t\t" . (!empty($vbulletin->GPC['thumb']) ? 'issueattach.thumbnail AS filedata, thumbnail_dateline AS dateline, thumbnail_filesize AS filesize,' : 'issueattach.dateline, SUBSTRING(filedata, 1, 2097152) AS filedata, filesize,') . "\r\n\t\tissueattach.visible, issueattach.extension\r\n\tFROM " . TABLE_PREFIX . "pt_issueattach AS issueattach\r\n\tWHERE issueattach.attachmentid = " . $vbulletin->GPC['attachmentid'] . "\r\n"))) { eval(standard_error(fetch_error('invalidid', $idname, $vbulletin->options['contactuslink']))); } $issue = verify_issue($attachmentinfo['issueid']); $project = verify_project($issue['projectid']); $issueperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid'], $issue['issuetypeid']); if (!($issueperms['attachpermissions'] & $vbulletin->pt_bitfields['attach']['canattachview'])) { print_no_permission(); } if ($vbulletin->options['pt_attachfile']) { require_once DIR . '/includes/functions_file.php'; if ($vbulletin->GPC['thumb']) { $attachpath = fetch_attachment_path($attachmentinfo['userid'], $attachmentinfo['attachmentid'], true, $vbulletin->options['pt_attachpath']); } else { $attachpath = fetch_attachment_path($attachmentinfo['userid'], $attachmentinfo['attachmentid'], false, $vbulletin->options['pt_attachpath']); } if ($permissions['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']) { if (!($fp = fopen($attachpath, 'rb'))) { exit;
$addressed_next_selected = ($issue['isaddressed'] == 1 and $issue['addressedversionid'] == 0) ? ' selected="selected"' : ''; // status $status_options = build_issuestatus_select($vbulletin->pt_issuetype["{$issuetypeid}"]['statuses'], $issue['issuestatusid']); // setup milestones $show['milestone'] = $new_issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canviewmilestone']; $show['milestone_edit'] = ($show['milestone'] and $new_posting_perms['milestone_edit']); $milestone_options = fetch_milestone_select($new_project['projectid'], $issue['milestoneid']); $navbits = array('project.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['projects'], "project.php?" . $vbulletin->session->vars['sessionurl'] . "projectid={$project['projectid']}" => $project['title_clean'], 'project.php?' . $vbulletin->session->vars['sessionurl'] . "issueid={$issue['issueid']}" => $issue['title'], '' => $vbphrase['edit_issue']); $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";'); eval('print_output("' . fetch_template('pt_move_issue_confirm') . '");'); } // ####################################################################### if ($_REQUEST['do'] == 'moveissue') { $vbulletin->input->clean_array_gpc('r', array('issueid' => TYPE_UINT)); $issue = verify_issue($vbulletin->GPC['issueid']); $project = verify_project($issue['projectid']); $issueperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid'], $issue['issuetypeid']); $posting_perms = prepare_issue_posting_pemissions($issue, $issueperms); if (!($issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canmoveissue'])) { print_no_permission(); } $project_type_select = ''; $optionclass = ''; foreach ($vbulletin->pt_projects as $projectid => $projectinfo) { $project_perms["{$projectid}"] = fetch_project_permissions($vbulletin->userinfo, $projectid); $optgroup_options = ''; foreach (array_keys($projectinfo['types']) as $type) { // Check we can both view and post the target issue type if (!($project_perms["{$projectid}"]["{$type}"]['generalpermissions'] & $vbulletin->pt_bitfields['general']['canview']) or !($project_perms["{$projectid}"]["{$type}"]['postpermissions'] & $vbulletin->pt_bitfields['post']['canpostnew'])) { continue;