Open Journal Systems  3.3.0
SubmissionFileAssignedQueryAccessPolicy.inc.php
1 <?php
17 import('lib.pkp.classes.security.authorization.internal.SubmissionFileBaseAccessPolicy');
18 
24  function __construct($request, $fileIdAndRevision = null) {
25  parent::__construct($request, $fileIdAndRevision);
26  }
27 
28 
29  //
30  // Implement template methods from AuthorizationPolicy
31  //
35  function effect() {
36  $request = $this->getRequest();
37 
38  // Get the user
39  $user = $request->getUser();
40  if (!is_a($user, 'User')) return AUTHORIZATION_DENY;
41 
42  // Get the submission file
43  $submissionFile = $this->getSubmissionFile($request);
44  if (!is_a($submissionFile, 'SubmissionFile')) return AUTHORIZATION_DENY;
45 
46  // Check if it's associated with a note.
47  if ($submissionFile->getAssocType() != ASSOC_TYPE_NOTE) return AUTHORIZATION_DENY;
48 
49  $noteDao = DAORegistry::getDAO('NoteDAO'); /* @var $noteDao NoteDAO */
50  $note = $noteDao->getById($submissionFile->getAssocId());
51  if (!is_a($note, 'Note')) return AUTHORIZATION_DENY;
52 
53  if ($note->getAssocType() != ASSOC_TYPE_QUERY) return AUTHORIZATION_DENY;
54  $queryDao = DAORegistry::getDAO('QueryDAO'); /* @var $queryDao QueryDAO */
55  $query = $queryDao->getById($note->getAssocId());
56  if (!$query) return AUTHORIZATION_DENY;
57 
58  if ($queryDao->getParticipantIds($note->getAssocId(), $user->getId())) {
59  return AUTHORIZATION_PERMIT;
60  }
61 
62  return AUTHORIZATION_DENY;
63  }
64 }
65 
66 
SubmissionFileBaseAccessPolicy\getSubmissionFile
getSubmissionFile($request)
Definition: SubmissionFileBaseAccessPolicy.inc.php:67
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubmissionFileAssignedQueryAccessPolicy
Submission file policy to check if the current user is a participant in a query the file belongs to.
Definition: SubmissionFileAssignedQueryAccessPolicy.inc.php:19
SubmissionFileAssignedQueryAccessPolicy\effect
effect()
Definition: SubmissionFileAssignedQueryAccessPolicy.inc.php:35
SubmissionFileBaseAccessPolicy
Abstract class for submission file access policies.
Definition: SubmissionFileBaseAccessPolicy.inc.php:18
SubmissionFileBaseAccessPolicy\getRequest
getRequest()
Definition: SubmissionFileBaseAccessPolicy.inc.php:102
SubmissionFileAssignedQueryAccessPolicy\__construct
__construct($request, $fileIdAndRevision=null)
Definition: SubmissionFileAssignedQueryAccessPolicy.inc.php:24