/** * @return int[] array(102 => 324, 106 => 325, <template_ugroup_id> => <target_ugroup_id>, …) */ public function getMapping(Tracker $template_tracker, Project $target_project) { $template_ugroups = $this->permissions_retriever->getListOfInvolvedStaticUgroups($template_tracker); $target_ugroups = $this->ugroup_manager->getStaticUGroups($target_project); $ugroups = array(); foreach ($template_ugroups as $template_ugroup) { foreach ($target_ugroups as $target_ugroup) { if ($template_ugroup->getName() == $target_ugroup->getName()) { $ugroups[$template_ugroup->getId()] = $target_ugroup->getId(); } } } return $ugroups; }
/** * @return Tracker_UgroupPermissionsConsistencyMessage */ public function checkConsistency(Tracker $template_tracker, Project $target_project) { if ($template_tracker->getProject() == $target_project) { $this->messenger->allIsWell(); return; } $ugroups = $this->permissions_retriever->getListOfInvolvedStaticUgroups($template_tracker); if (!$ugroups) { $this->messenger->allIsWell(); return; } $template_ugroups_names = array_map(array($this, 'extractUGroupName'), $ugroups); $target_ugroups = $this->ugroup_manager->getStaticUGroups($target_project); $target_ugroups_names = array_map(array($this, 'extractUGroupName'), $target_ugroups); $diff = array_diff($template_ugroups_names, $target_ugroups_names); if ($diff) { $this->messenger->ugroupsMissing($diff); } else { $this->messenger->ugroupsAreTheSame($template_ugroups_names); } }