Open Journal Systems  3.3.0
SubmissionFileAssignedReviewerAccessPolicy.inc.php
1 <?php
17 import('lib.pkp.classes.security.authorization.internal.SubmissionFileBaseAccessPolicy');
18 
24  function __construct($request, $fileIdAndRevision = null) {
25  parent::__construct($request, $fileIdAndRevision);
26  }
27 
28 
29  //
30  // Implement template methods from AuthorizationPolicy
31  //
35  function effect() {
36  $request = $this->getRequest();
37 
38  // Get the user
39  $user = $request->getUser();
40  if (!is_a($user, 'User')) return AUTHORIZATION_DENY;
41 
42  // Get the submission file
43  $submissionFile = $this->getSubmissionFile($request);
44  if (!is_a($submissionFile, 'SubmissionFile')) return AUTHORIZATION_DENY;
45 
46  $context = $request->getContext();
47  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
48  $reviewAssignments = $reviewAssignmentDao->getByUserId($user->getId());
49  $reviewFilesDao = DAORegistry::getDAO('ReviewFilesDAO'); /* @var $reviewFilesDao ReviewFilesDAO */
50  foreach ($reviewAssignments as $reviewAssignment) {
51  if ($context->getData('restrictReviewerFileAccess') && !$reviewAssignment->getDateConfirmed()) continue;
52 
53  if (
54  $submissionFile->getSubmissionId() == $reviewAssignment->getSubmissionId() &&
55  $submissionFile->getFileStage() == SUBMISSION_FILE_REVIEW_FILE &&
56  $reviewFilesDao->check($reviewAssignment->getId(), $submissionFile->getFileId())
57  ) {
58  return AUTHORIZATION_PERMIT;
59  }
60  }
61 
62  // If a pass condition wasn't found above, deny access.
63  return AUTHORIZATION_DENY;
64  }
65 }
66 
67 
SubmissionFileBaseAccessPolicy\getSubmissionFile
getSubmissionFile($request)
Definition: SubmissionFileBaseAccessPolicy.inc.php:67
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionFileBaseAccessPolicy
Abstract class for submission file access policies.
Definition: SubmissionFileBaseAccessPolicy.inc.php:18
SubmissionFileAssignedReviewerAccessPolicy\__construct
__construct($request, $fileIdAndRevision=null)
Definition: SubmissionFileAssignedReviewerAccessPolicy.inc.php:24
SubmissionFileAssignedReviewerAccessPolicy\effect
effect()
Definition: SubmissionFileAssignedReviewerAccessPolicy.inc.php:35
SubmissionFileBaseAccessPolicy\getRequest
getRequest()
Definition: SubmissionFileBaseAccessPolicy.inc.php:102
SubmissionFileAssignedReviewerAccessPolicy
Submission file policy to check if the current user is an assigned reviewer of the file.
Definition: SubmissionFileAssignedReviewerAccessPolicy.inc.php:19