Open Monograph Press  3.3.0
SubmissionFileStageRequiredPolicy.inc.php
1 <?php
16 import('lib.pkp.classes.security.authorization.internal.SubmissionFileBaseAccessPolicy');
17 
20  var $_fileStage;
21 
24 
33  function __construct($request, $fileIdAndRevision, $fileStage, $viewable = false) {
34  parent::__construct($request, $fileIdAndRevision);
35  $this->_fileStage = $fileStage;
36  $this->_viewable = $viewable;
37  }
38 
39 
40  //
41  // Implement template methods from AuthorizationPolicy
42  //
46  function effect() {
47  $request = $this->getRequest();
48 
49  // Get the submission file.
50  $submissionFile = $this->getSubmissionFile($request);
51  if (!is_a($submissionFile, 'SubmissionFile')) return AUTHORIZATION_DENY;
52 
53  // Make sure that it's in the required stage
54  if ($submissionFile->getFileStage() != $this->_fileStage) return AUTHORIZATION_DENY;
55 
56  if ($this->_viewable) {
57  // Make sure the file is visible. Unless file is included in an open review.
58  if (!$submissionFile->getViewable()){
59  if ($submissionFile->getAssocType() === ASSOC_TYPE_REVIEW_ASSIGNMENT){
60  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
61  $reviewAssignment = $reviewAssignmentDao->getById((int) $submissionFile->getAssocId());
62  if ($reviewAssignment->getReviewMethod() != SUBMISSION_REVIEW_METHOD_OPEN){
63  return AUTHORIZATION_DENY;
64  }
65  }
66  else{
67  return AUTHORIZATION_DENY;
68  }
69  }
70  }
71 
72  // Made it through -- permit access.
73  return AUTHORIZATION_PERMIT;
74  }
75 }
76 
77 
SubmissionFileStageRequiredPolicy\__construct
__construct($request, $fileIdAndRevision, $fileStage, $viewable=false)
Definition: SubmissionFileStageRequiredPolicy.inc.php:39
SubmissionFileStageRequiredPolicy\$_viewable
$_viewable
Definition: SubmissionFileStageRequiredPolicy.inc.php:29
SubmissionFileBaseAccessPolicy\getSubmissionFile
getSubmissionFile($request)
Definition: SubmissionFileBaseAccessPolicy.inc.php:67
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionFileStageRequiredPolicy
Submission file policy to ensure that we have a file at a required stage.
Definition: SubmissionFileStageRequiredPolicy.inc.php:18
SubmissionFileBaseAccessPolicy
Abstract class for submission file access policies.
Definition: SubmissionFileBaseAccessPolicy.inc.php:18
SubmissionFileStageRequiredPolicy\effect
effect()
Definition: SubmissionFileStageRequiredPolicy.inc.php:52
SubmissionFileStageRequiredPolicy\$_fileStage
$_fileStage
Definition: SubmissionFileStageRequiredPolicy.inc.php:23
SubmissionFileBaseAccessPolicy\getRequest
getRequest()
Definition: SubmissionFileBaseAccessPolicy.inc.php:102