private function removePreviousCrossReferences(Project $project, $revision, $old_commit_message) { $GLOBALS['group_id'] = $project->getID(); $references = $this->reference_manager->extractReferences($old_commit_message, $project->getID()); foreach ($references as $reference_instance) { /* @var $reference Reference */ $reference = $reference_instance->getReference(); if ($reference) { $cross_reference = new CrossReference($revision, $project->getID(), ReferenceManager::REFERENCE_NATURE_SVNREVISION, '', $reference_instance->getValue(), $reference->getGroupId(), $reference->getNature(), '', ''); $this->reference_manager->removeCrossReference($cross_reference); } } }
/** * Remove from database a cross reference between $source_artifact and $target_artifact * * @param Tracker_Artifact $source_artifact * @param Tracker_Artifact $target_artifact * @param PFUser $user * * @return boolean */ public function removeBetweenTwoArtifacts(Tracker_Artifact $source_artifact, Tracker_Artifact $target_artifact, PFUser $user) { return $this->reference_manager->removeCrossReference($this->getCrossReferenceBetweenTwoArtifacts($source_artifact, $target_artifact, $user)); }
<?php require_once 'pre.php'; require_once 'common/reference/ReferenceManager.class.php'; $target_id = $request->get('target_id'); $target_gid = $request->get('target_gid'); $target_type = $request->get('target_type'); $target_key = $request->get('target_key'); $source_id = $request->get('source_id'); $source_gid = $request->get('source_gid'); $source_type = $request->get('source_type'); $source_key = $request->get('source_key'); $user = UserManager::instance()->getCurrentUser(); $project_admin = $user->isMember($target_gid, 'A'); if (!$project_admin) { $project_admin_source = $user->isMember($source_gid, 'A'); if ($project_admin_source) { $project_admin = true; } } if ($project_admin) { $cross_reference = new CrossReference($source_id, $source_gid, $source_type, $source_key, $target_id, $target_gid, $target_type, $target_key, $user->getId()); $reference_manager = new ReferenceManager(); $reference_manager->removeCrossReference($cross_reference); }