Ejemplo n.º 1
0
 public function getUsersXML()
 {
     return $this->archive->getFromName(self::USER_FILE);
 }
Ejemplo n.º 2
0
$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();