• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/grid/files/attachment/ReviewerReviewAttachmentGridDataProvider.inc.php

00001 <?php
00002 
00016 import('controllers.grid.files.SubmissionFilesGridDataProvider');
00017 
00018 class ReviewerReviewAttachmentGridDataProvider extends SubmissionFilesGridDataProvider {
00020    var $_reviewId;
00021 
00025    function ReviewerReviewAttachmentGridDataProvider() {
00026       parent::SubmissionFilesGridDataProvider(MONOGRAPH_FILE_REVIEW_ATTACHMENT);
00027    }
00028 
00029 
00030    //
00031    // Implement template methods from GridDataProvider
00032    //
00036    function getAuthorizationPolicy(&$request, $args, $roleAssignments) {
00037       import('classes.security.authorization.internal.ReviewAssignmentRequiredPolicy');
00038 
00039       // Need to use the reviewId because this grid can either be
00040       // viewed by the reviewer (in which case, we could do a
00041       // $request->getUser()->getId() or by the editor when reading
00042       // the review. The following covers both cases...
00043       $assocType = (int) $request->getUserVar('assocType');
00044       $assocId = (int) $request->getUserVar('assocId');
00045       if ($assocType && $assocId) {
00046          // Viewing from a Reviewer perspective.
00047          assert($assocType == ASSOC_TYPE_REVIEW_ASSIGNMENT);
00048 
00049          $this->setUploaderRoles($roleAssignments);
00050          import('classes.security.authorization.OmpReviewStageAccessPolicy');
00051          $authorizationPolicy = new OmpReviewStageAccessPolicy($request, $args, $roleAssignments, 'monographId', $request->getUserVar('stageId'));
00052          $paramName = 'assocId';
00053       } else {
00054          // Viewing from a press role perspective.
00055          $authorizationPolicy = parent::getAuthorizationPolicy($request, $args, $roleAssignments);
00056          $paramName = 'reviewId';
00057       }
00058 
00059       $authorizationPolicy->addPolicy(new ReviewAssignmentRequiredPolicy($request, $args, $paramName));
00060 
00061       return $authorizationPolicy;
00062    }
00063 
00067    function getRequestArgs() {
00068       return array_merge(
00069          parent::getRequestArgs(),
00070          array(
00071             'assocType' => ASSOC_TYPE_REVIEW_ASSIGNMENT,
00072             'assocId' => $this->_getReviewId()
00073          )
00074       );
00075    }
00076 
00080    function &loadData() {
00081       // Get all review files assigned to this submission.
00082       $submissionFileDao =& DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
00083       $monographFiles =& $submissionFileDao->getAllRevisionsByAssocId(
00084          ASSOC_TYPE_REVIEW_ASSIGNMENT, $this->_getReviewId(), $this->getFileStage()
00085       );
00086       return $this->prepareSubmissionFileData($monographFiles);
00087    }
00088 
00089    //
00090    // Overridden public methods from FilesGridDataProvider
00091    //
00095    function &getAddFileAction($request) {
00096       import('controllers.api.file.linkAction.AddFileLinkAction');
00097       $monograph =& $this->getMonograph();
00098 
00099       $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00100       $reviewAssignment =& $reviewAssignmentDao->getById($this->_getReviewId());
00101 
00102       $addFileAction = new AddFileLinkAction(
00103          $request, $monograph->getId(), $this->getStageId(),
00104          $this->getUploaderRoles(), $this->getFileStage(),
00105          ASSOC_TYPE_REVIEW_ASSIGNMENT, $this->_getReviewId(),
00106          $reviewAssignment->getReviewRoundId()
00107       );
00108       return $addFileAction;
00109    }
00110    //
00111    // Private helper methods
00112    //
00117    function _getReviewId() {
00118       $reviewAssignment =& $this->getAuthorizedContextObject(ASSOC_TYPE_REVIEW_ASSIGNMENT);
00119       return $reviewAssignment->getId();
00120    }
00121 }
00122 
00123 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1