/** * @return string Gerrit project name * * @throws Git_Driver_Gerrit_ProjectCreator_ProjectAlreadyexistsException * @throws Git_Driver_Gerrit_Exception * @throws Git_Command_Exception */ public function createGerritProject(Git_RemoteServer_GerritServer $gerrit_server, GitRepository $repository, $template_id) { $project = $repository->getProject(); $project_name = $project->getUnixName(); $ugroups = $this->ugroup_manager->getUGroups($project); $driver = $this->driver_factory->getDriver($gerrit_server); $name = $driver->getGerritProjectName($repository); if ($driver->doesTheProjectExist($gerrit_server, $name)) { throw new Git_Driver_Gerrit_ProjectCreator_ProjectAlreadyexistsException($name, $gerrit_server->getHost()); } $migrated_ugroups = $this->membership_manager->createArrayOfGroupsForServer($gerrit_server, $ugroups); $this->umbrella_manager->recursivelyCreateUmbrellaProjects(array($gerrit_server), $project); $gerrit_project_name = $driver->createProject($gerrit_server, $repository, $project_name); $this->pushMinimalPermissionsToMigrateTuleapRepoOnGerrit($gerrit_server, $repository); $this->exportGitBranches($gerrit_server, $gerrit_project_name, $repository); // This method behaviour & all should be transfered into "finalizeGerritProjectCreation" $this->pushFullTuleapAccessRightsToGerrit($repository, $gerrit_server, $migrated_ugroups, ForgeConfig::get('sys_default_domain') . '-' . self::GROUP_REPLICATION, $template_id); return $gerrit_project_name; }
private function getIndexedUgroups(Project $project) { $ugroups = array(); $ugroup_manager = new UGroupManager(); $excluded_groups = array_merge(ProjectUGroup::$legacy_ugroups, array(ProjectUGroup::NONE, ProjectUGroup::ANONYMOUS)); if (!$project->isPublic()) { $excluded_groups = array_merge($excluded_groups, array(ProjectUGroup::REGISTERED)); } $all_ugroups = $ugroup_manager->getUGroups($project, $excluded_groups); foreach ($all_ugroups as $ugroup) { $ugroups[$ugroup->getId()] = $ugroup; } return $ugroups; }
/** * @param array $gerrit_servers * @param Project $project */ private function createProjectOnServers(array $gerrit_servers, Project $project) { $ugroups = $this->ugroup_manager->getUGroups($project); $admin_ugroup = $this->getAdminUGroup($ugroups); $project_name = $project->getUnixName(); foreach ($gerrit_servers as $gerrit_server) { $this->membership_manager->createArrayOfGroupsForServer($gerrit_server, $ugroups); $driver = $this->driver_factory->getDriver($gerrit_server); if (!$driver->doesTheParentProjectExist($gerrit_server, $project_name)) { $admin_group_name = $project_name . '/' . $admin_ugroup->getNormalizedName(); $project_name = $driver->createProjectWithPermissionsOnly($gerrit_server, $project, $admin_group_name); } } }
protected static function fetchSelectUgroups($select_name, $field, $values) { $hp = Codendi_HTMLPurifier::instance(); $ugroup_manager = new UGroupManager(); $ugroups = $ugroup_manager->getUGroups($field->getTracker()->getProject(), array(ProjectUGroup::NONE, ProjectUGroup::ANONYMOUS, ProjectUGroup::REGISTERED, ProjectUGroup::DOCUMENT_ADMIN, ProjectUGroup::DOCUMENT_TECH)); $html = ''; $html .= '<input type="hidden" name="' . $select_name . '" value="" />'; $html .= '<select multiple="multiple" name="' . $select_name . '" size="' . min(9, max(5, count($ugroups))) . '">'; $selected_ugroup_ids = array_map(array(__CLASS__, 'getSelectedUgroupIds'), $values); foreach ($ugroups as $ugroup) { $selected = ""; if (in_array($ugroup->getId(), $selected_ugroup_ids)) { $selected = 'selected="selected"'; } $html .= '<option value="' . $ugroup->getId() . '" ' . $selected . '>'; $html .= $hp->purify($ugroup->getTranslatedName()); $html .= '</option>'; } $html .= '</select>'; return $html; }
public function getRESTAvailableValues() { $type = $this->getBind()->getType(); if ($type === Tracker_FormElement_Field_List_Bind_Users::TYPE) { return array('resource' => array('type' => 'users', 'uri' => 'users/?query=')); } if ($type === Tracker_FormElement_Field_List_Bind_Ugroups::TYPE) { $class_user_representation = '\\Tuleap\\Project\\REST\\UserGroupRepresentation'; $ugroup_manager = new UGroupManager(); $project = $this->getTracker()->getProject(); $user_groups = $ugroup_manager->getUGroups($project); $values = array(); foreach ($user_groups as $ugroup) { $ugroup_representation = new $class_user_representation(); $ugroup_representation->build($project->getID(), $ugroup); $values[] = $ugroup_representation; } return $values; } return parent::getRESTAvailableValues(); }
function news_fetch_ugroups($project) { $ugroup_manager = new UGroupManager(); $hp = Codendi_HTMLPurifier::instance(); $excluded_ugroups = array(ProjectUGroup::NONE, ProjectUGroup::ANONYMOUS, ProjectUGroup::REGISTERED, ProjectUGroup::TRACKER_ADMIN); $ugroups = $ugroup_manager->getUGroups($project, $excluded_ugroups); $html = ''; $html .= '<select multiple="multiple" name="send_news_to[]">'; foreach ($ugroups as $ugroup) { $html .= '<option value="' . $ugroup->getId() . '">'; $html .= $hp->purify($ugroup->getTranslatedName()); $html .= '</option>'; } $html .= '</select>'; return $html; }