public function getUsersXML() { return $this->archive->getFromName(self::USER_FILE); }
$security = new XML_Security(); $xml_validator = new XML_RNGValidator(); $transformer = new User\XML\Import\MappingFileOptimusPrimeTransformer($user_manager); $console = new Log_ConsoleLogger(); $logger = new ProjectXMLImporterLogger(); $broker_log = new BrokerLogger(array($logger, $console)); $builder = new User\XML\Import\UsersToBeImportedCollectionBuilder($user_manager, $broker_log, $security, $xml_validator); 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();