Open Journal Systems  3.3.0
LimitReviewFilesGridHandler.inc.php
1 <?php
17 import('lib.pkp.controllers.grid.files.fileList.SelectableFileListGridHandler');
18 
23  function __construct() {
24  import('lib.pkp.controllers.grid.files.review.ReviewGridDataProvider');
25  // Pass in null stageId to be set in initialize from request var.
26  parent::__construct(
27  new ReviewGridDataProvider(SUBMISSION_FILE_REVIEW_FILE),
28  null,
29  FILE_GRID_VIEW_NOTES
30  );
31 
32  $this->addRoleAssignment(
33  array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT),
34  array('fetchGrid', 'fetchRow')
35  );
36 
37  // Set the grid information.
38  $this->setTitle('editor.submissionReview.restrictFiles');
39  }
40 
44  function authorize($request, &$args, $roleAssignments) {
45  if ($reviewAssignmentId = $request->getUserVar('reviewAssignmentId')) {
46  // If a review assignment ID is specified, preload the
47  // checkboxes with the currently selected files. To do
48  // this, we'll need the review assignment in the context.
49  // Add the required policies:
50 
51  // 1) Review stage access policy (fetches submission in context)
52  import('lib.pkp.classes.security.authorization.ReviewStageAccessPolicy');
53  $this->addPolicy(new ReviewStageAccessPolicy($request, $args, $roleAssignments, 'submissionId', $request->getUserVar('stageId')));
54 
55  // 2) Review assignment
56  import('lib.pkp.classes.security.authorization.internal.ReviewAssignmentRequiredPolicy');
57  $this->addPolicy(new ReviewAssignmentRequiredPolicy($request, $args, 'reviewAssignmentId', array('fetchGrid', 'fetchRow')));
58  }
59  return parent::authorize($request, $args, $roleAssignments);
60  }
61 
65  function isDataElementSelected($gridDataElement) {
66  $reviewAssignment = $this->getAuthorizedContextObject(ASSOC_TYPE_REVIEW_ASSIGNMENT);
67  if ($reviewAssignment) {
68  $submissionFile = $gridDataElement['submissionFile'];
69  // A review assignment was specified in the request; preset the
70  // checkboxes to the currently available set of files.
71  $reviewFilesDao = DAORegistry::getDAO('ReviewFilesDAO'); /* @var $reviewFilesDao ReviewFilesDAO */
72  return $reviewFilesDao->check($reviewAssignment->getId(), $submissionFile->getFileId());
73  } else {
74  // No review assignment specified; default to all files available.
75  return true;
76  }
77  }
78 }
79 
80 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
LimitReviewFilesGridHandler\isDataElementSelected
isDataElementSelected($gridDataElement)
Definition: LimitReviewFilesGridHandler.inc.php:65
ReviewStageAccessPolicy
Class to control access to review stage components.
Definition: ReviewStageAccessPolicy.inc.php:18
ReviewGridDataProvider
Provide access to review file data for grids.
Definition: ReviewGridDataProvider.inc.php:17
LimitReviewFilesGridHandler
Display a selectable list of review files for the round to editors. Items in this list can be selecte...
Definition: LimitReviewFilesGridHandler.inc.php:19
LimitReviewFilesGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: LimitReviewFilesGridHandler.inc.php:44
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
SelectableFileListGridHandler
Base grid for selectable file lists. The grid use the SelectableItemFeature to show a check box for e...
Definition: SelectableFileListGridHandler.inc.php:19
LimitReviewFilesGridHandler\__construct
__construct()
Definition: LimitReviewFilesGridHandler.inc.php:23
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
ReviewAssignmentRequiredPolicy
Policy that ensures that the request contains a valid review assignment.
Definition: ReviewAssignmentRequiredPolicy.inc.php:17