$vbulletin->input->clean_array_gpc('r', array('issueid' => TYPE_UINT, 'filter' => TYPE_NOHTML, 'pagenumber' => TYPE_UINT)); $issue = verify_issue($vbulletin->GPC['issueid'], true, array('avatar', 'vote', 'milestone')); $project = verify_project($issue['projectid']); $issueperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid'], $issue['issuetypeid']); $posting_perms = prepare_issue_posting_pemissions($issue, $issueperms); ($hook = vBulletinHook::fetch_hook('project_issue_start')) ? eval($hook) : false; $show['issue_closed'] = $issue['state'] == 'closed'; $show['reply_issue'] = $posting_perms['can_reply']; $show['quick_reply'] = ($vbulletin->userinfo['userid'] and $posting_perms['can_reply']); if (!$vbulletin->pt_issuestatus["{$issue['issuestatusid']}"]['canpetitionfrom']) { $show['status_petition'] = false; } else { $show['status_petition'] = ($show['quick_reply'] and $issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['canpetition']); } $show['attachments'] = ($vbulletin->userinfo['userid'] and $issueperms['attachpermissions'] & $vbulletin->pt_bitfields['attach']['canattachview']); $show['attachment_upload'] = ($show['attachments'] and $issueperms['attachpermissions'] & $vbulletin->pt_bitfields['attach']['canattach'] and !is_issue_closed($issue, $issueperms)); $show['edit_issue'] = $posting_perms['issue_edit']; if ($issue['state'] == 'closed') { // if the issue is closed, no one can vote at all $show['vote_option'] = false; } else { if ($vbulletin->userinfo['userid'] and $vbulletin->userinfo['userid'] == $issue['submituserid'] and !$vbulletin->options['pt_allowstartervote']) { // issue starters can't vote $show['vote_option'] = false; } else { $show['vote_option'] = $issueperms['generalpermissions'] & $vbulletin->pt_bitfields['general']['canvote']; } } $show['private_edit'] = $issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['cancreateprivate']; // for quick reply $show['status_edit'] = $posting_perms['status_edit'];
/** * Determines if the note can be edited based on the issue and permissions. * * @param array Array of issue info * @param array Array of note info * @param array Array of issue permissions * * @return boolean */ function can_edit_issue_note($issue, $issuenote, $issueperms) { global $vbulletin; if (is_issue_closed($issue, $issueperms)) { return false; } return $vbulletin->userinfo['userid'] and $issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['caneditnote'] and ($issueperms['postpermissions'] & $vbulletin->pt_bitfields['post']['caneditnoteothers'] or $issuenote['userid'] == $vbulletin->userinfo['userid']); }
$vbphrase['addressed_version_issuetype'] = $vbphrase["addressed_version_{$issue['issuetypeid']}"]; // editor require_once DIR . '/includes/functions_editor.php'; $editorid = construct_edit_toolbar(htmlspecialchars_uni($issue['pagetext']), false, 'pt', $vbulletin->options['pt_allowsmilies'], true, false); $private_checked = $issue['visible'] == 'private' ? ' checked="checked"' : ''; ($hook = vBulletinHook::fetch_hook('projectpost_addissue_complete')) ? eval($hook) : false; eval('print_output("' . fetch_template('pt_postissue') . '");'); } // ####################################################################### if ($_POST['do'] == 'uploadattachment') { $vbulletin->input->clean_array_gpc('p', array('issueid' => TYPE_UINT)); $vbulletin->input->clean_gpc('f', 'attachment', TYPE_FILE); $issue = verify_issue($vbulletin->GPC['issueid']); $project = verify_project($issue['projectid']); $issueperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid'], $issue['issuetypeid']); if (!($issueperms['attachpermissions'] & $vbulletin->pt_bitfields['attach']['canattach']) or is_issue_closed($issue, $issueperms)) { print_no_permission(); } ($hook = vBulletinHook::fetch_hook('projectpost_attachment_upload')) ? eval($hook) : false; if ($vbulletin->GPC['attachment']) { require_once DIR . '/includes/class_upload_pt.php'; require_once DIR . '/includes/class_image.php'; require_once DIR . '/includes/class_dm.php'; require_once DIR . '/includes/class_dm_attachment_pt.php'; $attachdata =& vB_DataManager_Attachment_Pt::fetch_library($vbulletin, ERRTYPE_STANDARD); $upload =& new vB_Upload_Attachment_Pt($vbulletin); $image =& vB_Image::fetch_library($vbulletin); $upload->data =& $attachdata; $upload->image =& $image; $upload->issueinfo = $issue; $attachment = array('name' => &$vbulletin->GPC['attachment']['name'], 'tmp_name' => &$vbulletin->GPC['attachment']['tmp_name'], 'error' => &$vbulletin->GPC['attachment']['error'], 'size' => &$vbulletin->GPC['attachment']['size']);