/**
  * Display reviewer index page.
  */
 function index($args)
 {
     ReviewerHandler::validate();
     ReviewerHandler::setupTemplate();
     $journal =& Request::getJournal();
     $user =& Request::getUser();
     $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO');
     $rangeInfo = Handler::getRangeInfo('submissions');
     $page = isset($args[0]) ? $args[0] : '';
     switch ($page) {
         case 'completed':
             $active = false;
             break;
         default:
             $page = 'active';
             $active = true;
     }
     $submissions = $reviewerSubmissionDao->getReviewerSubmissionsByReviewerId($user->getUserId(), $journal->getJournalId(), $active, $rangeInfo);
     $templateMgr =& TemplateManager::getManager();
     $templateMgr->assign('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions());
     $templateMgr->assign('pageToDisplay', $page);
     $templateMgr->assign_by_ref('submissions', $submissions);
     import('submission.reviewAssignment.ReviewAssignment');
     $templateMgr->assign_by_ref('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions());
     import('issue.IssueAction');
     $issueAction =& new IssueAction();
     $templateMgr->register_function('print_issue_id', array($issueAction, 'smartyPrintIssueId'));
     $templateMgr->assign('helpTopicId', 'editorial.reviewersRole.submissions');
     $templateMgr->display('reviewer/index.tpl');
 }
 /** TODO:
  * (non-PHPdoc)
  * @see PKPHandler::validate()
  */
 function validate($meetingId)
 {
     parent::validate();
     $meetingDao =& DAORegistry::getDAO('MeetingDAO');
     $journal =& Request::getJournal();
     $user =& Request::getUser();
     $isValid = true;
     $newKey = Request::getUserVar('key');
     $meeting =& $meetingDao->getMeetingByMeetingAndUserId($meetingId, $user->getId());
     if (!$meeting) {
         $isValid = false;
     } elseif ($user && empty($newKey)) {
         $metingAttendance = $meeting->getMeetingAttendanceOfUser($user->getId());
         if (!$metingAttendance) {
             $isValid = false;
         }
     } else {
         //$user =& MeetingReviewerHandler::validateAccessKey($meeting->getUserId(), $meetingId, $newKey);
         if (!$user) {
             $isValid = false;
         }
     }
     if (!$isValid) {
         Request::redirect(null, Request::getRequestedPage());
     }
     $sectionDecisions = array();
     $reviewIds = array();
     $map = array();
     $meetingSectionDecisionDao =& DAORegistry::getDAO('MeetingSectionDecisionDAO');
     $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
     $sectionDecisionDao =& DAORegistry::getDAO('SectionDecisionDAO');
     $mSectionDecisions = $meetingSectionDecisionDao->getMeetingSectionDecisionsByMeetingId($meeting->getId());
     foreach ($mSectionDecisions as $mSectionDecision) {
         $sectionDecision = $sectionDecisionDao->getSectionDecision($mSectionDecision->getSectionDecisionId());
         if ($reviewAssignmentDao->assignmentExistsByArticleAndReviewerId($user->getId(), $sectionDecision->getArticleId())) {
             $map[$mSectionDecision->getSectionDecisionId()] = $sectionDecision->getArticleId();
         }
         array_push($sectionDecisions, $sectionDecision);
     }
     $this->decisionReviewMap =& $map;
     $this->sectionDecisions =& $sectionDecisions;
     $this->meeting =& $meeting;
     $this->user =& $user;
     return true;
 }
 /**
  * Handle validation of incoming requests.
  * @param $request PKPRequest
  * @param $reviewId int
  * @param $commentId int optional
  */
 function validate($request, $reviewId, $commentId = null)
 {
     parent::validate($request, $reviewId);
     if ($commentId !== null) {
         // Bug #8863: Can't call normal addCheck b/c of one-click reviewer
         // access bypassing normal validation tools (no Request::getUser)
         $check = new HandlerValidatorSubmissionComment($this, $commentId, $this->user);
         if (!$check->isValid()) {
             $request->redirect(null, null, 'index');
         }
     }
 }