function generate() { global $Language; $request =& HTTPRequest::instance(); if ($data = $request->get('data')) { if (isset($data['users']['generate']) && $data['users']['generate']) { $um = UserManager::instance(); $nb_wanted = isset($data['users']['nb']) ? (int) $data['users']['nb'] : 1; $users = $this->_getUsersData(); reset($users); $nb_done = 0; while ((list(, $user) = each($users)) && $nb_wanted > $nb_done) { if (!$um->getUserByUserName($user['name'])) { require_once 'account.php'; account_create($user['name'], 'codendi', '', $user['realname'], '', '*****@*****.**', 'A', '', 0, 0, 'Europe/Paris', 'en_US', 'A'); $nb_done++; } } } if (isset($data['projects']['generate']) && $data['projects']['generate']) { $nb_wanted = isset($data['projects']['nb']) ? (int) $data['projects']['nb'] : 1; $projects = $this->_getProjectsData(); reset($projects); $nb_done = 0; while ((list(, $project) = each($projects)) && $nb_wanted > $nb_done) { if (!group_get_object_by_name($project['name'])) { $projectCreator = new ProjectCreator(ProjectManager::instance(), ReferenceManager::instance()); $projectCreator->create(array('project' => array('form_unix_name' => $project['name'], 'form_full_name' => $project['name'], 'form_short_description' => $project['description'], 'form_purpose' => $project['description'], 'form_required_sw' => '', 'form_patents' => '', 'form_comments' => '', 'built_from_template' => 100, 'is_test' => false, 'is_public' => true, 'trove' => array()))); $nb_done++; } } } } }
/** * Instantiates a project with user, groups, admins ... * * @param string $project_short_name * @param string $project_long_name * @param string $is_public * @param array $project_members * @param array $project_admins */ public function createProject($project_short_name, $project_long_name, $is_public, array $project_members, array $project_admins) { $first_admin = array_shift($project_admins); \UserManager::instance()->setCurrentUser($first_admin); $project = $this->project_creator->create($project_short_name, $project_long_name, array('project' => array('form_short_description' => '', 'is_test' => false, 'is_public' => $is_public, 'services' => $this->getServices(), 'built_from_template' => 100))); \ProjectManager::instance()->activate($project); foreach ($project_members as $project_member) { var_dump('Add member ' . $project_member->getUserName()); $this->addMembersToProject($project, $project_member); } foreach ($project_admins as $project_admin) { var_dump('Add admin ' . $project_member->getUserName()); $this->addAdminToProject($project, $project_admin); } var_dump('Project created'); return $project; }
public function itCreatesAProject() { $projectCreator = new ProjectCreator(ProjectManager::instance(), ReferenceManager::instance()); $projectCreator->create('short-name', 'Long name', array('project' => array('form_short_description' => '', 'is_test' => false, 'is_public' => false, 'services' => array(), 'built_from_template' => 100))); ProjectManager::clearInstance(); $project = ProjectManager::instance()->getProjectByUnixName('short-name'); $this->assertEqual($project->getPublicName(), 'Long name'); }
/** * Instantiates a project with user, groups, admins ... * * @param string $project_short_name * @param string $project_long_name * @param string $is_public * @param array $project_members * @param array $project_admins */ protected function createProject($project_short_name, $project_long_name, $is_public, array $project_members, array $project_admins, array $services) { $user = $this->user_manager->getUserByUserName(self::ADMIN_USER_NAME); $this->user_manager->setCurrentUser($user); $project = $this->project_creator->create($project_short_name, $project_long_name, array('project' => array('form_short_description' => '', 'is_test' => false, 'is_public' => $is_public, 'services' => $services, 'built_from_template' => 100))); $this->project_manager->activate($project); foreach ($project_members as $project_member) { $this->addMembersToProject($project, $project_member); } foreach ($project_admins as $project_admin) { $this->addAdminToProject($project, $project_admin); } return $project; }
/** * Create the data array needed by create_project and create the project * * @param String $shortName * @param String $publicName * @param String $privacy * @param Project $template * * @return Integer */ private function formatDataAndCreateProject($shortName, $publicName, $privacy, Project $template) { $data = array('project' => array('form_license' => 'xrx', 'form_license_other' => '', 'form_short_description' => '', 'is_test' => false, 'is_public' => false, 'services' => array(), 'built_from_template' => $template->getID())); if ($privacy === Project::ACCESS_PUBLIC) { $data['project']['is_public'] = true; } foreach ($template->getServices() as $key => $service) { $is_used = $service->isActive() && $service->isUsed(); $data['project']['services'][$service->getId()]['is_used'] = $is_used; } $project = $this->projectCreator->create($shortName, $publicName, $data); $this->projectManager->activate($project); return $project->getID(); }