public function importTemplateInProject(Project $project, PFUser $user, $template_path) { \UserManager::instance()->forceLogin($user->getUserName()); var_dump('Import Template'); $this->xml_importer->import($project->getID(), $template_path); var_dump('Template imported'); }
public function itDoesNotImportsExistingUgroups() { stub($this->project_manager)->getProject()->returns($this->project); stub($this->ugroup_manager)->getUGroupByName($this->project, 'ug01')->returns(false); stub($this->ugroup_manager)->getUGroupByName($this->project, 'ug02')->returns(true); stub($this->ugroup_manager)->getUGroupByName($this->project, 'ug03')->returns(false); $user_01 = aUser()->withLdapId('ldap_01')->withUserName('user_01')->withId(101)->build(); $user_02 = aUser()->withLdapId('ldap_02')->withUserName('user_02')->withId(102)->build(); $user_04 = aUser()->withUserName('user_04')->withId(104)->build(); stub($this->user_manager)->getUserByIdentifier('ldapId:ldap_01')->returns($user_01); stub($this->user_manager)->getUserByIdentifier('ldapId:ldap_02')->returns($user_02); stub($this->user_manager)->getUserByIdentifier('user_04')->returns($user_04); $this->ugroup_manager->expectCallCount('createEmptyUgroup', 2); expect($this->ugroup_manager)->createEmptyUgroup(122,'ug01','descr01')->at(0); expect($this->ugroup_manager)->createEmptyUgroup(122,'ug03','descr03')->at(1); $this->ugroup_manager->expectCallCount('addUserToUgroup', 3); expect($this->ugroup_manager)->addUserToUgroup(122, '*', 101)->at(0); expect($this->ugroup_manager)->addUserToUgroup(122, '*', 102)->at(1); expect($this->ugroup_manager)->addUserToUgroup(122, '*', 104)->at(2); $this->xml_importer->import(122, $this->xml_file_path_with_ugroups); }
public function createFirstScrum() { if ($this->areThereConfiguredPlannings()) { return; } $already_existing_tracker = $this->getAlreadyExistingTracker(); if ($already_existing_tracker) { $GLOBALS['Response']->addFeedback(Feedback::WARN, $GLOBALS['Language']->getText('plugin_agiledashboard_first_scrum', 'error_existing_tracker', $already_existing_tracker)); return; } try { $this->xml_importer->import($this->project->getId(), $this->template_path); $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_agiledashboard_first_scrum', 'created')); } catch (Exception $e) { $GLOBALS['Response']->addFeedback(Feedback::WARN, $GLOBALS['Language']->getText('plugin_agiledashboard_first_scrum', 'internal_error')); } }
public function testImportProjectCreatesAProject() { $project_manager = ProjectManager::instance(); $user_manager = UserManager::instance(); $importer = new ProjectXMLImporter(EventManager::instance(), $project_manager, new XML_RNGValidator(), new UGroupManager(), new XMLImportHelper($user_manager), new Log_ConsoleLogger()); $xml_project = dirname(__FILE__) . '/_fixtures/fake_project.xml'; $importer->import(null, $xml_project); // Reset Project Manager (and its cache) ProjectManager::clearInstance(); $project_manager = ProjectManager::instance(); // Check the project was created $project = $project_manager->getProjectByUnixName('toto123'); $this->assertEqual($project->getPublicName(), 'Toto 123'); $this->assertEqual($project->getDescription(), '123 Soleil'); $this->assertEqual($project->usesSVN(), true); $this->assertEqual($project->usesCVS(), false); }
public function testImportProjectCreatesAProject() { $project_manager = ProjectManager::instance(); $user_manager = UserManager::instance(); $importer = new ProjectXMLImporter(EventManager::instance(), $project_manager, new XML_RNGValidator(), new UGroupManager(), new XMLImportHelper($user_manager), new Log_ConsoleLogger()); $system_event_runner = mock('ProjectImportTest_SystemEventRunner'); $archive = new Tuleap\Project\XML\Import\DirectoryArchive(__DIR__ . '/_fixtures/fake_project'); $importer->importNewFromArchive($archive, $system_event_runner); // Reset Project Manager (and its cache) ProjectManager::clearInstance(); $project_manager = ProjectManager::instance(); // Check the project was created $project = $project_manager->getProjectByUnixName('toto123'); $this->assertEqual($project->getPublicName(), 'Toto 123'); $this->assertEqual($project->getDescription(), '123 Soleil'); $this->assertEqual($project->usesSVN(), true); $this->assertEqual($project->usesCVS(), false); $system_event_runner->expectCallCount('runSystemEvents', 1); $system_event_runner->expectCallCount('checkPermissions', 1); }
protected function importTemplateInProject($project_id, $template) { $xml_importer = new ProjectXMLImporter(EventManager::instance(), $this->project_manager, new XML_RNGValidator(), new UGroupManager(), UserManager::instance(), new XMLImportHelper(), new ProjectXMLImporterLogger()); $this->user_manager->forceLogin(self::ADMIN_USER_NAME); $xml_importer->import($project_id, $this->template_path . $template); }
$xml_validator = new XML_RNGValidator(); $transformer = new User\XML\Import\MappingFileOptimusPrimeTransformer($user_manager); $logger = new ProjectXMLImporterLogger(); $builder = new User\XML\Import\UsersToBeImportedCollectionBuilder($user_manager, $logger, $security, $xml_validator); $console = new Log_ConsoleLogger(); try { $user = $user_manager->forceLogin($username); if (!$user->isSuperUser() && !$user->isAdmin($project_id) || !$user->isActive()) { throw new RuntimeException($GLOBALS['Language']->getText('project_import', 'invalid_user', array($username))); } $archive = new ZipArchive(); if ($archive->open($archive_path) !== true) { $console->error("Unable to open archive {$archive_path}"); exit(1); } $collection_from_archive = $builder->buildFromArchive($archive); $users_collection = $transformer->transform($collection_from_archive, $mapping_path); $users_collection->process($user_manager, $console); $user_finder = new User\XML\Import\Mapping($user_manager, $users_collection, $logger); $xml_importer = new ProjectXMLImporter(EventManager::instance(), ProjectManager::instance(), $xml_validator, new UGroupManager(), $user_finder, new ProjectXMLImporterLogger()); $xml_importer->importFromArchive($project_id, $archive); $archive->close(); exit(0); } catch (XML_ParseException $exception) { foreach ($exception->getErrors() as $parse_error) { $console->error('XML: ' . $parse_error . ' line:' . $exception->getSourceXMLForError($parse_error)); } } catch (Exception $exception) { $console->error($exception->getMessage()); } exit(1);
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Tuleap. If not, see <http://www.gnu.org/licenses/>. */ require_once 'pre.php'; if ($argc < 4) { echo <<<EOT Usage: {$argv['0']} project_id admin_user_name xml_file_path EOT; exit(1); } $user_manager = UserManager::instance(); $xml_importer = new ProjectXMLImporter(EventManager::instance(), ProjectManager::instance(), new XML_RNGValidator(), new UGroupManager(), UserManager::instance(), new XMLImportHelper(), new ProjectXMLImporterLogger()); try { $project_id = $argv[1]; $user = $user_manager->forceLogin($argv[2]); if (!$user->isSuperUser() && !$user->isAdmin($project_id) || !$user->isActive()) { throw new RuntimeException($GLOBALS['Language']->getText('project_import', 'invalid_user', array($user_name))); } $xml_importer->import($project_id, $argv[3]); } catch (XML_ParseException $exception) { foreach ($exception->getErrors() as $parse_error) { fwrite(STDERR, "*** ERROR: " . $parse_error . PHP_EOL); } exit(1); } catch (Exception $exception) { fwrite(STDERR, "*** ERROR: " . $exception->getMessage() . PHP_EOL); exit(1);
private function importConfiguration() { $xml_importer = new ProjectXMLImporter(EventManager::instance(), ProjectManager::instance(), new XML_RNGValidator(), new UGroupManager(), UserManager::instance(), new XMLImportHelper(), new ProjectXMLImporterLogger()); try { $xml_importer->import($this->group_id, $_FILES["template_file"]["tmp_name"]); $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_agiledashboard', 'import_template_success')); } catch (Exception $e) { $GLOBALS['Response']->addFeedback(Feedback::ERROR, $GLOBALS['Language']->getText('plugin_agiledashboard', 'cannot_import')); } }
try { $user = $user_manager->forceLogin($username); if (!$user->isSuperUser() && !$user->isAdmin($project_id) || !$user->isActive()) { throw new RuntimeException($GLOBALS['Language']->getText('project_import', 'invalid_user', array($username))); } if (is_dir($archive_path)) { $archive = new Import\DirectoryArchive($archive_path); } else { $archive = new Import\ZipArchive($archive_path, ForgeConfig::get('tmp_dir')); } $archive->extractFiles(); $collection_from_archive = $builder->buildFromArchive($archive); $users_collection = $transformer->transform($collection_from_archive, $mapping_path); $users_collection->process($user_manager, $broker_log); $user_finder = new User\XML\Import\Mapping($user_manager, $users_collection, $broker_log); $xml_importer = new ProjectXMLImporter(EventManager::instance(), ProjectManager::instance(), $xml_validator, new UGroupManager(), $user_finder, $broker_log); if (empty($project_id)) { $factory = new SystemEventProcessor_Factory($logger, SystemEventManager::instance(), EventManager::instance()); $system_event_runner = new Tuleap\Project\SystemEventRunner($factory); $xml_importer->importNewFromArchive($archive, $system_event_runner, $project_name_override); } else { $xml_importer->importFromArchive($project_id, $archive); } $archive->cleanUp(); exit(0); } catch (XML_ParseException $exception) { foreach ($exception->getErrors() as $parse_error) { $broker_log->error('XML: ' . $parse_error . ' line:' . $exception->getSourceXMLForError($parse_error)); } } catch (Exception $exception) { $broker_log->error(get_class($exception) . ': ' . $exception->getMessage() . ' in ' . $exception->getFile() . ' L' . $exception->getLine());