private function createLinksBetweenArtifacts(PFUser $user, Tracker_XML_Importer_ArtifactImportedMapping $artifacts_imported_mapping, Tracker_Artifact $root_artifact) { $comment_message = ''; $send_notifications = false; $original_id = $artifacts_imported_mapping->getOriginal($root_artifact->getId()); $children = $this->children_collector->getChildrenForParent($original_id); if (!$children) { return; } foreach ($children as $key => $original_child_id) { $children[$key] = $artifacts_imported_mapping->get($original_child_id); } $field_id = $root_artifact->getAnArtifactLinkField($user)->getId(); $fields_data = array($field_id => array(Tracker_FormElement_Field_ArtifactLink::NEW_VALUES_KEY => implode(',', $children))); $root_artifact->createNewChangeset($fields_data, $comment_message, $user, $send_notifications, Tracker_Artifact_Changeset_Comment::TEXT_COMMENT); foreach ($children as $child_id) { $artifact = $this->artifact_factory->getArtifactById($child_id); $this->createLinksBetweenArtifacts($user, $artifacts_imported_mapping, $artifact); } }
public function userCanSearchOnArtifact(User $user, Tracker_Artifact $artifact) { return $artifact->getTracker()->getTitleField() !== null && $artifact->getTracker()->getTitleField()->userCanRead($user) && $artifact->getAnArtifactLinkField($user) !== null; }