Open Journal Systems  3.3.0
SubmissionFileEventLogGridHandler.inc.php
1 <?php
2 
16 // import grid base classes
17 import('lib.pkp.controllers.grid.eventLog.SubmissionEventLogGridHandler');
18 
20 
21  //
22  // Getters/Setters
23  //
28  function getSubmissionFile() {
29  return $this->_submissionFile;
30  }
31 
36  function setSubmissionFile($submissionFile) {
37  $this->_submissionFile = $submissionFile;
38  }
39 
40 
41  //
42  // Overridden methods from PKPHandler
43  //
50  function authorize($request, &$args, $roleAssignments) {
51  import('lib.pkp.classes.security.authorization.SubmissionFileAccessPolicy');
52  $this->addPolicy(new SubmissionFileAccessPolicy($request, $args, $roleAssignments, SUBMISSION_FILE_ACCESS_READ));
53  return parent::authorize($request, $args, $roleAssignments);
54  }
55 
60  function initialize($request, $args = null) {
61  parent::initialize($request, $args);
62 
63  // Retrieve the authorized monograph.
64  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
65  $submissionFile = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION_FILE);
66  $this->setSubmissionFile($submissionFile);
67  }
68 
69 
70  //
71  // Overridden methods from GridHandler
72  //
78  function getRequestArgs() {
79  $submissionFile = $this->getSubmissionFile();
80 
81  return array(
82  'submissionId' => $submissionFile->getSubmissionId(),
83  'fileId' => $submissionFile->getFileId(),
84  'revision' => $submissionFile->getRevision(),
85  );
86  }
87 
91  protected function loadData($request, $filter = null) {
92  $submissionFile = $this->getSubmissionFile();
93  $submissionFileEventLogDao = DAORegistry::getDAO('SubmissionFileEventLogDAO'); /* @var $submissionFileEventLogDao SubmissionFileEventLogDAO */
94  $eventLogEntries = $submissionFileEventLogDao->getByFileId(
95  $submissionFile->getFileId()
96  );
97  $eventLogEntries = $eventLogEntries->toArray();
98 
99  if ($filter['allEvents']) {
100  // Also include events from past versions
101  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
102  while (true) {
103  $submissionFile = $submissionFileDao->getRevision($submissionFile->getSourceFileId(), $submissionFile->getSourceRevision());
104  if (!$submissionFile) break;
105 
106  $iterator = $submissionFileEventLogDao->getByFileId($submissionFile->getFileId());
107  $eventLogEntries += $iterator->toArray();
108  }
109  }
110 
111  return $eventLogEntries;
112  }
113 
118  protected function getFilterForm() {
119  // If the user only has an author role, do not permit access
120  // to earlier stages.
121  $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
122  if (array_intersect(array(ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR, ROLE_ID_ASSISTANT), $userRoles)) {
123  return 'controllers/grid/eventLog/eventLogGridFilter.tpl';
124  }
125  return parent::getFilterForm();
126  }
127 
131  function getFilterSelectionData($request) {
132  return array('allEvents' => $request->getUserVar('allEvents') ? true : false);
133  }
134 }
135 
136 
SubmissionFileEventLogGridHandler\getRequestArgs
getRequestArgs()
Definition: SubmissionFileEventLogGridHandler.inc.php:78
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionFileEventLogGridHandler\getSubmissionFile
getSubmissionFile()
Definition: SubmissionFileEventLogGridHandler.inc.php:28
SubmissionFileEventLogGridHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: SubmissionFileEventLogGridHandler.inc.php:50
SubmissionFileEventLogGridHandler
Grid handler presenting the submission file event log grid.
Definition: SubmissionFileEventLogGridHandler.inc.php:19
SubmissionEventLogGridHandler
Grid handler presenting the submission event log grid.
Definition: SubmissionEventLogGridHandler.inc.php:27
SubmissionFileEventLogGridHandler\getFilterForm
getFilterForm()
Definition: SubmissionFileEventLogGridHandler.inc.php:118
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
SubmissionFileEventLogGridHandler\getFilterSelectionData
getFilterSelectionData($request)
Definition: SubmissionFileEventLogGridHandler.inc.php:131
SubmissionFileAccessPolicy
Base class to control (write) access to submissions and (read) access to submission files.
Definition: SubmissionFileAccessPolicy.inc.php:23
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
SubmissionFileEventLogGridHandler\loadData
loadData($request, $filter=null)
Definition: SubmissionFileEventLogGridHandler.inc.php:91
SubmissionFileEventLogGridHandler\setSubmissionFile
setSubmissionFile($submissionFile)
Definition: SubmissionFileEventLogGridHandler.inc.php:36
SubmissionFileEventLogGridHandler\initialize
initialize($request, $args=null)
Definition: SubmissionFileEventLogGridHandler.inc.php:60