/** * @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; }
protected function adminGitAdminsView($is_admin_mass_change_allowed) { $params = $this->getData(); $presenter = new GitPresenters_AdminGitAdminsPresenter($this->groupId, $is_admin_mass_change_allowed, $this->ugroup_manager->getStaticUGroups($this->project), $this->git_permissions_manager->getCurrentGitAdminUgroups($this->project->getId())); $renderer = TemplateRendererFactory::build()->getRenderer(dirname(GIT_BASE_DIR) . '/templates'); echo $renderer->renderToString('admin', $presenter); }
/** * @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); } }
private function exportProjectUgroups(Project $project, SimpleXMLElement $into_xml) { $this->logger->debug("Exporting project's static ugroups"); $ugroups = $this->ugroup_manager->getStaticUGroups($project); if (empty($ugroups)) { return; } $ugroups_node = $into_xml->addChild('ugroups'); foreach ($ugroups as $ugroup) { $this->logger->debug("Current static ugroups: " . $ugroup->getName()); $ugroup_node = $ugroups_node->addChild('ugroup'); $ugroup_node->addAttribute('name', $ugroup->getNormalizedName()); $ugroup_node->addAttribute('description', $ugroup->getDescription()); $members_node = $ugroup_node->addChild('members'); foreach ($ugroup->getMembers() as $member) { $this->user_xml_exporter->exportUser($member, $members_node, 'member'); } } $rng_path = realpath(dirname(__FILE__) . '/../xml/resources/ugroups.rng'); $this->xml_validator->validate($ugroups_node, $rng_path); }