Open Journal Systems  3.3.0
SubmissionRequiredPolicy.inc.php
1 <?php
15 import('lib.pkp.classes.security.authorization.DataObjectRequiredPolicy');
16 
25  function __construct($request, &$args, $submissionParameterName = 'submissionId', $operations = null) {
26  parent::__construct($request, $args, $submissionParameterName, 'user.authorization.invalidSubmission', $operations);
27 
28  $callOnDeny = array($request->getDispatcher(), 'handle404', array());
29  $this->setAdvice(
30  AUTHORIZATION_ADVICE_CALL_ON_DENY,
31  $callOnDeny
32  );
33  }
34 
35  //
36  // Implement template methods from AuthorizationPolicy
37  //
41  function dataObjectEffect() {
42  // Get the submission id.
43  $submissionId = $this->getDataObjectId();
44  if ($submissionId === false) return AUTHORIZATION_DENY;
45 
46  // Validate the submission id.
47  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
48  $submission = $submissionDao->getById($submissionId);
49  if (!is_a($submission, 'Submission')) return AUTHORIZATION_DENY;
50 
51  // Validate that this submission belongs to the current context.
52  $context = $this->_request->getContext();
53  if ($context->getId() != $submission->getData('contextId')) return AUTHORIZATION_DENY;
54 
55  // Save the submission to the authorization context.
56  $this->addAuthorizedContextObject(ASSOC_TYPE_SUBMISSION, $submission);
57  return AUTHORIZATION_PERMIT;
58  }
59 }
60 
61 
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
DataObjectRequiredPolicy\getDataObjectId
getDataObjectId($lookOnlyByParameterName=false)
Definition: DataObjectRequiredPolicy.inc.php:111
AuthorizationPolicy\addAuthorizedContextObject
addAuthorizedContextObject($assocType, &$authorizedObject)
Definition: AuthorizationPolicy.inc.php:97
SubmissionRequiredPolicy\__construct
__construct($request, &$args, $submissionParameterName='submissionId', $operations=null)
Definition: SubmissionRequiredPolicy.inc.php:25
SubmissionRequiredPolicy\dataObjectEffect
dataObjectEffect()
Definition: SubmissionRequiredPolicy.inc.php:41
SubmissionRequiredPolicy
Policy that ensures that the request contains a valid submission.
Definition: SubmissionRequiredPolicy.inc.php:17
AuthorizationPolicy\setAdvice
setAdvice($adviceType, &$adviceContent)
Definition: AuthorizationPolicy.inc.php:64
DataObjectRequiredPolicy
Abstract base class for policies that check for a data object from a parameter.
Definition: DataObjectRequiredPolicy.inc.php:17