403Webshell
Server IP : 195.134.90.114  /  Your IP : 216.73.216.86
Web Server : Apache/2.4.58
System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : OFF
Directory :  /var/www/html/public_html/lib/pkp/controllers/grid/files/form/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /var/www/html/public_html/lib/pkp/controllers/grid/files/form/ManageSubmissionFilesForm.inc.php
<?php

/**
 * @file controllers/grid/files/form/ManageSubmissionFilesForm.inc.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 ManageSubmissionFilesForm
 * @ingroup controllers_grid_files_form
 *
 * @brief Form for add or removing files from a review
 */

import('lib.pkp.classes.form.Form');
import('lib.pkp.classes.submission.SubmissionFile');

class ManageSubmissionFilesForm extends Form {
	/** @var int **/
	var $_submissionId;

	/**
	 * Constructor.
	 * @param $submissionId int Submission ID
	 * @param $template string Template filename
	 */
	function __construct($submissionId, $template) {
		parent::__construct($template);
		$this->_submissionId = (int)$submissionId;

		$this->addCheck(new FormValidatorPost($this));
		$this->addCheck(new FormValidatorCSRF($this));
	}


	//
	// Getters / Setters
	//
	/**
	 * Get the submission id
	 * @return int
	 */
	function getSubmissionId() {
		return $this->_submissionId;
	}

	//
	// Overridden template methods
	//
	/**
	 * @copydoc Form::initData
	 */
	function initData() {
		$this->setData('submissionId', $this->_submissionId);
	}

	/**
	 * Assign form data to user-submitted data.
	 * @see Form::readInputData()
	 */
	function readInputData() {
		$this->readUserVars(array('selectedFiles'));
	}

	/**
	 * Save selection of submission files
	 * @param $stageSubmissionFiles array The files that belongs to a file stage
	 * that is currently being used by a grid inside this form.
	 * @param $fileStage int SUBMISSION_FILE_...
	 */
	function execute($stageSubmissionFiles = null, $fileStage = null, ...$functionArgs) {
		$request = Application::get()->getRequest();
		$selectedFiles = (array)$this->getData('selectedFiles');
		$submissionFilesIterator = Services::get('submissionFile')->getMany([
			'submissionIds' => [$this->getSubmissionId()],
		]);

		foreach ($submissionFilesIterator as $submissionFile) {
			// Get the viewable flag value.
			$isViewable = in_array(
				$submissionFile->getId(),
				$selectedFiles
			);

			// If this is a submission file that's already in this listing...
			if ($this->fileExistsInStage($submissionFile, $stageSubmissionFiles, $fileStage)) {
				// ...update the "viewable" flag accordingly.
				if ($isViewable != $submissionFile->getData('viewable')) {
					$submissionFile = Services::get('submissionFile')->edit(
						$submissionFile,
						['viewable' => $isViewable],
						$request
					);
				}
			} elseif ($isViewable) {
				// Import a file from a different workflow area
				$submissionFile = $this->importFile($submissionFile, $fileStage);
			}
		}

		parent::execute($stageSubmissionFiles = null, $fileStage = null, ...$functionArgs);
	}

	/**
	 * Determine if a file with the same file stage is already present in the workflow stage.
	 * @param $submissionFile SubmissionFile The submission file
	 * @param $stageSubmissionFiles array The list of submission files in the stage.
	 * @param $fileStage int FILE_STAGE_...
	 */
	protected function fileExistsInStage($submissionFile, $stageSubmissionFiles, $fileStage) {
		if (!isset($stageSubmissionFiles[$submissionFile->getId()])) return false;
		foreach ($stageSubmissionFiles[$submissionFile->getId()] as $stageFile) {
			if ($stageFile->getFileStage() == $submissionFile->getFileStage() && $stageFile->getFileStage() == $fileStage) return true;
		}
		return false;
	}

	/**
	 * Make a copy of the file to the specified file stage.
	 * @param $submissionFile SubmissionFile
	 * @param $fileStage int SUBMISSION_FILE_...
	 * @return SubmissionFile Resultant new submission file
	 */
	protected function importFile($submissionFile, $fileStage) {
		$newSubmissionFile = clone $submissionFile;
		$newSubmissionFile->setData('fileStage', $fileStage);
		$newSubmissionFile->setData('sourceSubmissionFileId', $submissionFile->getId());
		$newSubmissionFile = Services::get('submissionFile')->add($newSubmissionFile, Application::get()->getRequest());
		return $newSubmissionFile;
	}
}



Youez - 2016 - github.com/yon3zu
LinuXploit