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
00032
00036 function getAuthorizationPolicy(&$request, $args, $roleAssignments) {
00037 import('classes.security.authorization.internal.ReviewAssignmentRequiredPolicy');
00038
00039
00040
00041
00042
00043 $assocType = (int) $request->getUserVar('assocType');
00044 $assocId = (int) $request->getUserVar('assocId');
00045 if ($assocType && $assocId) {
00046
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
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
00082 $submissionFileDao =& DAORegistry::getDAO('SubmissionFileDAO');
00083 $monographFiles =& $submissionFileDao->getAllRevisionsByAssocId(
00084 ASSOC_TYPE_REVIEW_ASSIGNMENT, $this->_getReviewId(), $this->getFileStage()
00085 );
00086 return $this->prepareSubmissionFileData($monographFiles);
00087 }
00088
00089
00090
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
00112
00117 function _getReviewId() {
00118 $reviewAssignment =& $this->getAuthorizedContextObject(ASSOC_TYPE_REVIEW_ASSIGNMENT);
00119 return $reviewAssignment->getId();
00120 }
00121 }
00122
00123 ?>