00001 <?php
00014 import('lib.pkp.classes.security.authorization.DataObjectRequiredPolicy');
00015
00016 class ReviewAssignmentRequiredPolicy extends DataObjectRequiredPolicy {
00024 function ReviewAssignmentRequiredPolicy(&$request, &$args, $parameterName = 'reviewAssignmentId', $operations = null) {
00025 parent::DataObjectRequiredPolicy($request, $args, $parameterName, 'user.authorization.invalidReviewAssignment', $operations);
00026 }
00027
00028
00029
00030
00034 function dataObjectEffect() {
00035 $reviewId = (int)$this->getDataObjectId();
00036 if (!$reviewId) return AUTHORIZATION_DENY;
00037
00038 $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00039 $reviewAssignment =& $reviewAssignmentDao->getById($reviewId);
00040 if (!is_a($reviewAssignment, 'ReviewAssignment')) return AUTHORIZATION_DENY;
00041
00042
00043
00044 $monograph =& $this->getAuthorizedContextObject(ASSOC_TYPE_MONOGRAPH);
00045 if ($reviewAssignment->getSubmissionId() != $monograph->getId()) AUTHORIZATION_DENY;
00046
00047
00048 $stageId = $this->getAuthorizedContextObject(ASSOC_TYPE_WORKFLOW_STAGE);
00049 if ($reviewAssignment->getStageId() != $stageId) return AUTHORIZATION_DENY;
00050
00051
00052 $this->addAuthorizedContextObject(ASSOC_TYPE_REVIEW_ASSIGNMENT, $reviewAssignment);
00053 return AUTHORIZATION_PERMIT;
00054 }
00055 }
00056
00057 ?>