Open Journal Systems  3.3.0
ReviewerHandler.inc.php
1 <?php
2 
16 import('lib.pkp.pages.reviewer.PKPReviewerHandler');
17 
22  function __construct() {
23  parent::__construct();
24  $this->addRoleAssignment(
25  ROLE_ID_REVIEWER, array(
26  'submission', 'step', 'saveStep',
27  'showDeclineReview', 'saveDeclineReview', 'downloadFile'
28  )
29  );
30  }
31 
35  function authorize($request, &$args, $roleAssignments) {
36  $context = $request->getContext();
37  if ($context->getData('reviewerAccessKeysEnabled')) {
38  $this->_validateAccessKey($request);
39  }
40 
41  import('lib.pkp.classes.security.authorization.SubmissionAccessPolicy');
42  $router = $request->getRouter();
44  $request,
45  $args,
46  $roleAssignments
47  ));
48 
49 
50  return parent::authorize($request, $args, $roleAssignments);
51  }
52 
60  function _validateAccessKey($request) {
61  $accessKeyCode = $request->getUserVar('key');
62  $reviewId = $request->getUserVar('reviewId');
63  if (!($accessKeyCode && $reviewId)) { return false; }
64 
65  // Check if the user is already logged in
66  $sessionManager = SessionManager::getManager();
67  $session = $sessionManager->getUserSession();
68  if ($session->getUserId()) { return false; }
69 
70  import('lib.pkp.classes.security.AccessKeyManager');
71  $reviewerSubmissionDao = DAORegistry::getDAO('ReviewerSubmissionDAO'); /* @var $reviewerSubmissionDao ReviewerSubmissionDAO */
72  $reviewerSubmission = $reviewerSubmissionDao->getReviewerSubmission($reviewId);
73 
74  // Validate the access key
75  $context = $request->getContext();
76  $accessKeyManager = new AccessKeyManager();
77  $accessKeyHash = AccessKeyManager::generateKeyHash($accessKeyCode);
78  $accessKey = $accessKeyManager->validateKey(
79  $context->getId(),
80  $reviewerSubmission->getReviewerId(),
81  $accessKeyHash
82  );
83  if (!$accessKey) { return false; }
84 
85  // Get the reviewer user object
86  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
87  $user = $userDao->getById($accessKey->getUserId());
88  if (!$user) { return false; }
89 
90  // Register the user object in the session
91  import('lib.pkp.classes.security.Validation');
92  $reason = null;
93  if (Validation::registerUserSession($user, $reason)) {
94  $this->submission = $reviewerSubmission;
95  $this->user = $user;
96  }
97  }
98 
102  public function getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment) {
103  switch ($step) {
104  case 3:
105  import("classes.submission.reviewer.form.ReviewerReviewStep3Form");
106  return new ReviewerReviewStep3Form($request, $reviewerSubmission, $reviewAssignment);
107  }
108  return parent::getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment);
109  }
110 
111 }
112 
113 
ReviewerReviewStep3Form
Form for Step 3 of a review in OJS.
Definition: ReviewerReviewStep3Form.inc.php:18
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
PKPReviewerHandler
Handle requests for reviewer functions.
Definition: PKPReviewerHandler.inc.php:20
SessionManager\getManager
static getManager()
Definition: SessionManager.inc.php:124
Validation\registerUserSession
static registerUserSession($user, &$reason, $remember=false)
Definition: Validation.inc.php:107
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
AccessKeyManager
Class defining operations for AccessKey management.
Definition: AccessKeyManager.inc.php:18
ReviewerHandler
Handle requests for reviewer functions.
Definition: ReviewerHandler.inc.php:18
ReviewerHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: ReviewerHandler.inc.php:35
AccessKeyManager\generateKeyHash
generateKeyHash($key)
Definition: AccessKeyManager.inc.php:35
PKPReviewerHandler\submission
submission($args, $request)
Definition: PKPReviewerHandler.inc.php:30
ReviewerHandler\__construct
__construct()
Definition: ReviewerHandler.inc.php:22
SubmissionAccessPolicy
Base class to control (write) access to submissions and (read) access to submission details in OMP.
Definition: SubmissionAccessPolicy.inc.php:19
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
ReviewerHandler\getReviewForm
getReviewForm($step, $request, $reviewerSubmission, $reviewAssignment)
Definition: ReviewerHandler.inc.php:102
ReviewerHandler\_validateAccessKey
_validateAccessKey($request)
Definition: ReviewerHandler.inc.php:60