Open Journal Systems  3.3.0
QueryRequiredPolicy.inc.php
1 <?php
15 import('lib.pkp.classes.security.authorization.DataObjectRequiredPolicy');
16 
25  function __construct($request, &$args, $parameterName = 'queryId', $operations = null) {
26  parent::__construct($request, $args, $parameterName, 'user.authorization.invalidQuery', $operations);
27  }
28 
29  //
30  // Implement template methods from AuthorizationPolicy
31  //
35  function dataObjectEffect() {
36  $queryId = (int)$this->getDataObjectId();
37  if (!$queryId) return AUTHORIZATION_DENY;
38 
39  // Make sure the query belongs to the submission.
40  $queryDao = DAORegistry::getDAO('QueryDAO'); /* @var $queryDao QueryDAO */
41  $query = $queryDao->getById($queryId);
42  if (!is_a($query, 'Query')) return AUTHORIZATION_DENY;
43  switch ($query->getAssocType()) {
44  case ASSOC_TYPE_SUBMISSION:
45  $submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
46  if (!is_a($submission, 'Submission')) return AUTHORIZATION_DENY;
47  if ($query->getAssocId() != $submission->getId()) return AUTHORIZATION_DENY;
48  break;
49  default:
50  return AUTHORIZATION_DENY;
51  }
52 
53  // Save the query to the authorization context.
54  $this->addAuthorizedContextObject(ASSOC_TYPE_QUERY, $query);
55  return AUTHORIZATION_PERMIT;
56  }
57 }
58 
59 
QueryRequiredPolicy
Policy that ensures that the request contains a valid query.
Definition: QueryRequiredPolicy.inc.php:17
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
QueryRequiredPolicy\__construct
__construct($request, &$args, $parameterName='queryId', $operations=null)
Definition: QueryRequiredPolicy.inc.php:25
DataObjectRequiredPolicy\getDataObjectId
getDataObjectId($lookOnlyByParameterName=false)
Definition: DataObjectRequiredPolicy.inc.php:111
AuthorizationPolicy\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: AuthorizationPolicy.inc.php:117
AuthorizationPolicy\addAuthorizedContextObject
addAuthorizedContextObject($assocType, &$authorizedObject)
Definition: AuthorizationPolicy.inc.php:97
QueryRequiredPolicy\dataObjectEffect
dataObjectEffect()
Definition: QueryRequiredPolicy.inc.php:35
DataObjectRequiredPolicy
Abstract base class for policies that check for a data object from a parameter.
Definition: DataObjectRequiredPolicy.inc.php:17