first commit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file plugins/importexport/users/UserImportExportPlugin.php
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2003-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @class UserImportExportPlugin
|
||||
*
|
||||
* @ingroup plugins_importexport_user
|
||||
*
|
||||
* @brief User XML import/export plugin
|
||||
*/
|
||||
|
||||
namespace APP\plugins\importexport\users;
|
||||
|
||||
use APP\journal\JournalDAO;
|
||||
use PKP\db\DAORegistry;
|
||||
|
||||
class UserImportExportPlugin extends \PKP\plugins\importexport\users\PKPUserImportExportPlugin
|
||||
{
|
||||
/**
|
||||
* @copydoc PKPImportExportPlugin::usage
|
||||
*/
|
||||
public function usage($scriptName)
|
||||
{
|
||||
echo __('plugins.importexport.users.cliUsage', [
|
||||
'scriptName' => $scriptName,
|
||||
'pluginName' => $this->getName()
|
||||
]) . "\n\n";
|
||||
echo __('plugins.importexport.users.cliUsage.examples', [
|
||||
'scriptName' => $scriptName,
|
||||
'pluginName' => $this->getName()
|
||||
]) . "\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @see PKPImportExportPlugin::executeCLI()
|
||||
*/
|
||||
public function executeCLI($scriptName, &$args)
|
||||
{
|
||||
$command = array_shift($args);
|
||||
$xmlFile = array_shift($args);
|
||||
$journalPath = array_shift($args);
|
||||
|
||||
$journalDao = DAORegistry::getDAO('JournalDAO'); /** @var JournalDAO $journalDao */
|
||||
|
||||
$journal = $journalDao->getByPath($journalPath);
|
||||
|
||||
if (!$journal) {
|
||||
if ($journalPath != '') {
|
||||
echo __('plugins.importexport.common.cliError') . "\n";
|
||||
echo __('plugins.importexport.common.error.unknownContext', ['contextPath' => $journalPath]) . "\n\n";
|
||||
}
|
||||
$this->usage($scriptName);
|
||||
return;
|
||||
}
|
||||
|
||||
if ($xmlFile && $this->isRelativePath($xmlFile)) {
|
||||
$xmlFile = PWD . '/' . $xmlFile;
|
||||
}
|
||||
$outputDir = dirname($xmlFile);
|
||||
if (!is_writable($outputDir) || (file_exists($xmlFile) && !is_writable($xmlFile))) {
|
||||
echo __('plugins.importexport.common.cliError') . "\n";
|
||||
echo __('plugins.importexport.common.export.error.outputFileNotWritable', ['param' => $xmlFile]) . "\n\n";
|
||||
$this->usage($scriptName);
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($command) {
|
||||
case 'import':
|
||||
$this->importUsers(file_get_contents($xmlFile), $journal, null);
|
||||
return;
|
||||
case 'export':
|
||||
if ($xmlFile != '') {
|
||||
if (empty($args)) {
|
||||
file_put_contents($xmlFile, $this->exportAllUsers($journal, null));
|
||||
return;
|
||||
} else {
|
||||
file_put_contents($xmlFile, $this->exportUsers($args, $journal, null));
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
$this->usage($scriptName);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user