/**
  * 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;
 }