Open Journal Systems  3.3.0
ReviewerReviewAttachmentGridDataProvider.inc.php
1 <?php
16 import('lib.pkp.controllers.grid.files.SubmissionFilesGridDataProvider');
17 
20  var $_reviewId;
21 
25  function __construct() {
26  parent::__construct(SUBMISSION_FILE_REVIEW_ATTACHMENT);
27  }
28 
29 
30  //
31  // Implement template methods from GridDataProvider
32  //
36  function getAuthorizationPolicy($request, $args, $roleAssignments) {
37  import('lib.pkp.classes.security.authorization.internal.ReviewAssignmentRequiredPolicy');
38 
39  // Need to use the reviewId because this grid can either be
40  // viewed by the reviewer (in which case, we could do a
41  // $request->getUser()->getId() or by the editor when reading
42  // the review. The following covers both cases...
43  $assocType = (int) $request->getUserVar('assocType');
44  $assocId = (int) $request->getUserVar('assocId');
45  if ($assocType && $assocId) {
46  // Viewing from a Reviewer perspective.
47  assert($assocType == ASSOC_TYPE_REVIEW_ASSIGNMENT);
48 
49  $this->setUploaderRoles($roleAssignments);
50  import('lib.pkp.classes.security.authorization.ReviewStageAccessPolicy');
51 
52  $authorizationPolicy = new ReviewStageAccessPolicy($request, $args, $roleAssignments, 'submissionId', $request->getUserVar('stageId'));
53  $paramName = 'assocId';
54  } else {
55  // Viewing from a context role perspective.
56  $authorizationPolicy = parent::getAuthorizationPolicy($request, $args, $roleAssignments);
57  $paramName = 'reviewId';
58  }
59 
60  $authorizationPolicy->addPolicy(new ReviewAssignmentRequiredPolicy($request, $args, $paramName));
61 
62  return $authorizationPolicy;
63  }
64 
68  function getRequestArgs() {
69  return array_merge(
70  parent::getRequestArgs(),
71  array(
72  'assocType' => ASSOC_TYPE_REVIEW_ASSIGNMENT,
73  'assocId' => $this->_getReviewId()
74  )
75  );
76  }
77 
81  function loadData($filter = array()) {
82  // Get all review files assigned to this submission.
83  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
84  $submissionFiles = $submissionFileDao->getLatestRevisionsByAssocId(
85  ASSOC_TYPE_REVIEW_ASSIGNMENT, $this->_getReviewId(), $this->getSubmission()->getId(), $this->getFileStage()
86  );
87  return $this->prepareSubmissionFileData($submissionFiles, false, $filter);
88  }
89 
90  //
91  // Overridden public methods from FilesGridDataProvider
92  //
96  function getAddFileAction($request) {
97  import('lib.pkp.controllers.api.file.linkAction.AddFileLinkAction');
98  $submission = $this->getSubmission();
99 
100  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
101  $reviewAssignment = $reviewAssignmentDao->getById($this->_getReviewId());
102 
103  return new AddFileLinkAction(
104  $request, $submission->getId(), $this->getStageId(),
105  $this->getUploaderRoles(), $this->getFileStage(),
106  ASSOC_TYPE_REVIEW_ASSIGNMENT, $this->_getReviewId(),
107  $reviewAssignment->getReviewRoundId()
108  );
109  }
110  //
111  // Private helper methods
112  //
117  function _getReviewId() {
118  $reviewAssignment = $this->getAuthorizedContextObject(ASSOC_TYPE_REVIEW_ASSIGNMENT);
119  return $reviewAssignment->getId();
120  }
121 }
122 
123 
ReviewerReviewAttachmentGridDataProvider\getRequestArgs
getRequestArgs()
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:71
ReviewerReviewAttachmentGridDataProvider\loadData
loadData($filter=array())
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:84
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
ReviewerReviewAttachmentGridDataProvider\__construct
__construct()
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:28
ReviewStageAccessPolicy
Class to control access to review stage components.
Definition: ReviewStageAccessPolicy.inc.php:18
SubmissionFilesGridDataProvider
Definition: SubmissionFilesGridDataProvider.inc.php:18
ReviewerReviewAttachmentGridDataProvider\$_reviewId
$_reviewId
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:23
SubmissionFilesGridDataProvider\prepareSubmissionFileData
prepareSubmissionFileData($revisions, $viewableOnly=false, $filter=array())
Definition: SubmissionFilesGridDataProvider.inc.php:161
ReviewerReviewAttachmentGridDataProvider\getAddFileAction
getAddFileAction($request)
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:99
ReviewerReviewAttachmentGridDataProvider
Provide the reviewers access to their own review attachments data for grids.
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:18
AddFileLinkAction
An action to add a submission file.
Definition: AddFileLinkAction.inc.php:18
FilesGridDataProvider\getSubmission
getSubmission()
Definition: FilesGridDataProvider.inc.php:102
SubmissionFilesGridDataProvider\getFileStage
getFileStage()
Definition: SubmissionFilesGridDataProvider.inc.php:86
ReviewerReviewAttachmentGridDataProvider\getAuthorizationPolicy
getAuthorizationPolicy($request, $args, $roleAssignments)
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:39
GridDataProvider\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: GridDataProvider.inc.php:52
ReviewAssignmentRequiredPolicy
Policy that ensures that the request contains a valid review assignment.
Definition: ReviewAssignmentRequiredPolicy.inc.php:17
FilesGridDataProvider\setUploaderRoles
setUploaderRoles($roleAssignments)
Definition: FilesGridDataProvider.inc.php:43
ReviewerReviewAttachmentGridDataProvider\_getReviewId
_getReviewId()
Definition: ReviewerReviewAttachmentGridDataProvider.inc.php:120