first commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file tools/deleteSubmissions.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 SubmissionDeletionTool
|
||||
*
|
||||
* @ingroup tools
|
||||
*
|
||||
* @brief CLI tool to delete submissions
|
||||
*/
|
||||
|
||||
use APP\facades\Repo;
|
||||
use PKP\cliTool\CommandLineTool;
|
||||
|
||||
require(dirname(__FILE__) . '/bootstrap.php');
|
||||
|
||||
class SubmissionDeletionTool extends CommandLineTool
|
||||
{
|
||||
public array $parameters;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param array $argv command-line arguments
|
||||
*/
|
||||
public function __construct($argv = [])
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
if (!sizeof($this->argv)) {
|
||||
$this->usage();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$this->parameters = $this->argv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print command usage information.
|
||||
*/
|
||||
public function usage()
|
||||
{
|
||||
echo "Permanently removes submission(s) and associated information. USE WITH CARE.\n"
|
||||
. "Usage: {$this->scriptName} submission_id [...]\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete submission data and associated files
|
||||
*/
|
||||
public function execute()
|
||||
{
|
||||
foreach ($this->parameters as $articleId) {
|
||||
$article = Repo::submission()->get($articleId);
|
||||
if (!isset($article)) {
|
||||
printf("Error: Skipping {$articleId}. Unknown submission.\n");
|
||||
continue;
|
||||
}
|
||||
Repo::submission()->delete($article);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tool = new SubmissionDeletionTool($argv ?? []);
|
||||
$tool->execute();
|
||||
Reference in New Issue
Block a user