Open Monograph Press  3.3.0
SubmissionFileBaseAccessPolicy.inc.php
1 <?php
16 import('lib.pkp.classes.security.authorization.AuthorizationPolicy');
17 
20  var $_request;
21 
24 
31  function __construct($request, $fileIdAndRevision = null) {
32  parent::__construct('user.authorization.submissionFile');
33  $this->_request = $request;
34  $this->_fileIdAndRevision = $fileIdAndRevision;
35  }
36 
37 
38  //
39  // Private methods
40  //
46  function &_getCache() {
47  static $cache;
48  if (!isset($cache)) $cache = array();
49  return $cache;
50  }
51 
52 
53  //
54  // Protected methods
55  //
61  function getSubmissionFile($request) {
62  // Try to get the submission file info.
63  $fileIdAndRevision = $this->_fileIdAndRevision;
64  if (!is_null($fileIdAndRevision)) {
65  $fileData = explode('-', $fileIdAndRevision);
66  $fileId = (int) $fileData[0];
67  $revision = isset($fileData[1]) ? (int) $fileData[1] : 0; // -0 for most recent revision
68  $cacheId = $fileIdAndRevision;
69  } else {
70  // Get the identifying info from the request
71  $fileId = (int) $request->getUserVar('fileId');
72  $revision = (int) $request->getUserVar('revision');
73  assert($fileId>0);
74  $cacheId = "$fileId-$revision"; // -0 for most recent revision
75  }
76 
77  // Fetch the object, caching if possible
78  $cache =& $this->_getCache();
79  if (!isset($cache[$cacheId])) {
80  // Cache miss
81  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
82  if ($revision) {
83  $cache[$cacheId] = $submissionFileDao->getRevision($fileId, $revision);
84  } else {
85  $cache[$cacheId] = $submissionFileDao->getLatestRevision($fileId);
86  }
87  }
88 
89  return $cache[$cacheId];
90  }
91 
96  function getRequest() {
97  return $this->_request;
98  }
99 }
100 
101 
SubmissionFileBaseAccessPolicy\getSubmissionFile
getSubmissionFile($request)
Definition: SubmissionFileBaseAccessPolicy.inc.php:67
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionFileBaseAccessPolicy\$_request
$_request
Definition: SubmissionFileBaseAccessPolicy.inc.php:23
SubmissionFileBaseAccessPolicy
Abstract class for submission file access policies.
Definition: SubmissionFileBaseAccessPolicy.inc.php:18
SubmissionFileBaseAccessPolicy\$_fileIdAndRevision
$_fileIdAndRevision
Definition: SubmissionFileBaseAccessPolicy.inc.php:29
SubmissionFileBaseAccessPolicy\getRequest
getRequest()
Definition: SubmissionFileBaseAccessPolicy.inc.php:102
AuthorizationPolicy
Class to represent an authorization policy.
Definition: AuthorizationPolicy.inc.php:31
SubmissionFileBaseAccessPolicy\__construct
__construct($request, $fileIdAndRevision=null)
Definition: SubmissionFileBaseAccessPolicy.inc.php:37
SubmissionFileBaseAccessPolicy\_getCache
& _getCache()
Definition: SubmissionFileBaseAccessPolicy.inc.php:52