public function process(Tracker_IDisplayTrackerLayout $layout, Codendi_Request $request, PFUser $current_user) { if (!$this->tracker->userCanSubmitArtifact($current_user)) { $this->logsErrorAndRedirectToTracker('plugin_tracker_admin', 'access_denied'); return; } $from_artifact = $this->artifact_factory->getArtifactByIdUserCanView($current_user, $request->get('from_artifact_id')); if (!$from_artifact || $from_artifact->getTracker() !== $this->tracker) { $this->logsErrorAndRedirectToTracker('plugin_tracker_include_type', 'error_missing_param'); return; } $from_changeset = $from_artifact->getChangeset($request->get('from_changeset_id')); if (!$from_changeset) { $this->logsErrorAndRedirectToTracker('plugin_tracker_include_type', 'error_missing_param'); return; } $submitted_values = $request->get('artifact'); if (!is_array($submitted_values)) { $this->logsErrorAndRedirectToTracker('plugin_tracker_include_type', 'error_missing_param'); return; } try { $this->processCopy($from_changeset, $current_user, $submitted_values); } catch (Tracker_XML_Exporter_TooManyChildrenException $exception) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_tracker_artifact', 'copy_too_many_children', array(Tracker_XML_ChildrenCollector::MAX))); $this->redirectToArtifact($from_artifact); } }
/** * * @param type $id * * @return Tracker_Artifact * @throws Tracker_FileInfo_InvalidFileInfoException * @throws Tracker_FileInfo_UnauthorisedException */ public function getArtifactByFileInfoIdAndUser(PFUser $user, $id) { $row = $this->dao->searchArtifactIdByFileInfoIdInLastChangeset($id)->getRow(); if (!$row) { throw new Tracker_FileInfo_InvalidFileInfoException('File does not exist'); } $artifact = $this->artifact_factory->getArtifactByIdUserCanView($user, $row['artifact_id']); if ($artifact == null) { throw new Tracker_FileInfo_UnauthorisedException('User can\'t access the artifact the file is attached to'); } return $artifact; }
private function getArtifactLinkTitle($id) { if ($artifact = $this->artifact_factory->getArtifactByIdUserCanView($this->user, $id)) { return $artifact->getTitle(); } return ''; }
private function initInconsistentItems(PFUser $user, Planning_Milestone $milestone, $redirect_to_self, array $planned) { foreach ($planned as $planned_artifact_id) { if (!$this->all_collection[$milestone->getArtifactId()]->containsId($planned_artifact_id)) { $artifact = $this->artifact_factory->getArtifactByIdUserCanView($user, $planned_artifact_id); if ($artifact) { $this->inconsistent_collection[$milestone->getArtifactId()]->push($this->backlog_item_builder->getItem($artifact, $redirect_to_self)); } } } }