Ejemplo n.º 1
0
 /**
  * Validate that the user is an assigned reviewer for
  * the article.
  * Redirects to reviewer index page if validation fails.
  */
 function validate($request, $reviewId)
 {
     $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO');
     $journal =& $request->getJournal();
     $user =& $request->getUser();
     $isValid = true;
     $newKey = $request->getUserVar('key');
     $reviewerSubmission =& $reviewerSubmissionDao->getReviewerSubmission($reviewId);
     if (!$reviewerSubmission || $reviewerSubmission->getJournalId() != $journal->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, $request->getRequestedPage());
     }
     $this->submission =& $reviewerSubmission;
     $this->user =& $user;
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Validate that the user has been assigned at least once for a review in this article.
  * Redirects to reviewer index page if validation fails.
  */
 function validate($articleId)
 {
     $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO');
     $user =& Request::getUser();
     $isValid = true;
     $newKey = Request::getUserVar('key');
     $reviewerSubmission =& $reviewerSubmissionDao->getReviewerSubmissionByArticleAndReviewerId($articleId, $user->getId());
     if (!$reviewerSubmission) {
         $isValid = false;
     } elseif ($user && empty($newKey)) {
         if ($reviewerSubmission->getReviewerId() != $user->getId()) {
             $isValid = false;
         }
     } else {
         $decisionsAndAssignments = $reviewerSubmission->getPastDecisionsAndAssignments();
         $undergoingDecisionAndAssignment = $reviewerSubmission->getUndergoingDecisionAndAssignment();
         $user = null;
         foreach ($decisionsAndAssignments as $decisionsAndAssignment) {
             if (!$user) {
                 $assignment = $decisionsAndAssignment['assignment'];
                 $user =& SubmissionReviewHandler::validateAccessKey($reviewerSubmission->getReviewerId(), $assignment->getReviewId(), $newKey);
             }
         }
         if (!$user) {
             $assignment = $undergoingDecisionAndAssignment['assignment'];
             $user =& SubmissionReviewHandler::validateAccessKey($reviewerSubmission->getReviewerId(), $assignment->getReviewId(), $newKey);
         }
         if (!$user) {
             $isValid = false;
         }
     }
     if (!$isValid) {
         Request::redirect(null, Request::getRequestedPage());
     }
     $this->submission =& $reviewerSubmission;
     $this->user =& $user;
     return true;
 }