Ejemplo n.º 1
0
 /**
  * @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();
 }
Ejemplo n.º 6
0
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;
}