Open Monograph Press  3.3.0
QueryNoteFilesGridHandler.inc.php
1 <?php
2 
17 import('lib.pkp.controllers.grid.files.fileList.FileListGridHandler');
18 
23  function __construct() {
24  // import app-specific grid data provider for access policies.
25  $request = Application::get()->getRequest();
26  $stageId = $request->getUservar('stageId'); // authorized in authorize() method.
27  import('lib.pkp.controllers.grid.files.query.QueryNoteFilesGridDataProvider');
28  parent::__construct(
29  new QueryNoteFilesGridDataProvider($request->getUserVar('noteId')),
30  $stageId,
31  FILE_GRID_ADD|FILE_GRID_DELETE|FILE_GRID_VIEW_NOTES|FILE_GRID_EDIT
32  );
33 
34  $this->addRoleAssignment(
35  array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT, ROLE_ID_REVIEWER, ROLE_ID_AUTHOR),
36  array('fetchGrid', 'fetchRow', 'selectFiles')
37  );
38 
39  // Set grid title.
40  $this->setTitle('submission.queries.attachedFiles');
41  }
42 
46  function authorize($request, $args, $roleAssignments) {
47  $stageId = $request->getUserVar('stageId'); // This is being validated in WorkflowStageAccessPolicy
48  $this->_stageId = (int)$stageId;
49 
50  // Get the stage access policy
51  import('lib.pkp.classes.security.authorization.QueryAccessPolicy');
52  $queryAccessPolicy = new QueryAccessPolicy($request, $args, $roleAssignments, $stageId);
53  $this->addPolicy($queryAccessPolicy);
54  $result = parent::authorize($request, $args, $roleAssignments);
55 
56  if (0!=count(array_intersect(
57  $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES),
58  array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT)
59  ))) {
60  $this->getCapabilities()->setCanManage(true);
61  }
62 
63  return $result;
64  }
65 
66 
67  //
68  // Public handler methods
69  //
76  function selectFiles($args, $request) {
77  $submission = $this->getSubmission();
78  $query = $this->getAuthorizedContextObject(ASSOC_TYPE_QUERY);
79 
80  import('lib.pkp.controllers.grid.files.query.form.ManageQueryNoteFilesForm');
81  $manageQueryNoteFilesForm = new ManageQueryNoteFilesForm($submission->getId(), $query->getId(), $request->getUserVar('noteId'), $this->getRequestArgs());
82  $manageQueryNoteFilesForm->initData();
83  return new JSONMessage(true, $manageQueryNoteFilesForm->fetch($request));
84  }
85 }
86 
87 
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
ManageQueryNoteFilesForm
Form to add files to the query files grid.
Definition: ManageQueryNoteFilesForm.inc.php:18
QueryNoteFilesGridHandler\selectFiles
selectFiles($args, $request)
Definition: QueryNoteFilesGridHandler.inc.php:76
QueryNoteFilesGridDataProvider
Provide access to query files management.
Definition: QueryNoteFilesGridDataProvider.inc.php:19
SubmissionFilesGridHandler\getSubmission
getSubmission()
Definition: SubmissionFilesGridHandler.inc.php:92
SubmissionFilesGridHandler\getCapabilities
getCapabilities()
Definition: SubmissionFilesGridHandler.inc.php:68
QueryAccessPolicy
Class to control access to queries.
Definition: QueryAccessPolicy.inc.php:18
FileListGridHandler
Base grid for simple file lists. This grid shows the file type in addition to the file name.
Definition: FileListGridHandler.inc.php:22
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
GridHandler\setTitle
setTitle($title)
Definition: GridHandler.inc.php:215
QueryNoteFilesGridHandler\__construct
__construct()
Definition: QueryNoteFilesGridHandler.inc.php:23
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
QueryNoteFilesGridHandler\authorize
authorize($request, $args, $roleAssignments)
Definition: QueryNoteFilesGridHandler.inc.php:46
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
QueryNoteFilesGridHandler
Handle query files that are associated with a query The participants of a query have access to the fi...
Definition: QueryNoteFilesGridHandler.inc.php:19