示例#1
0
 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));
             }
         }
     }
 }