/** * Validate that the user is an assigned reviewer for * the paper. * Redirects to reviewer index page if validation fails. */ function validate($request, $reviewId) { $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO'); $schedConf =& $request->getSchedConf(); $user =& $request->getUser(); $isValid = true; $newKey = $request->getUserVar('key'); $reviewerSubmission =& $reviewerSubmissionDao->getReviewerSubmission($reviewId); if (!$reviewerSubmission || $reviewerSubmission->getSchedConfId() != $schedConf->getId()) { $isValid = false; } elseif ($user && empty($newKey)) { if ($reviewerSubmission->getReviewerId() != $user->getId()) { $isValid = false; } } else { $user =& SubmissionReviewHandler::_validateAccessKey($request, $reviewerSubmission->getReviewerId(), $reviewId, $newKey); if (!$user) { $isValid = false; } } if (!$isValid) { $request->redirect(null, null, $request->getRequestedPage()); } $this->submission =& $reviewerSubmission; $this->user =& $user; return true; }