00001 <?php
00016 import('classes.security.authorization.internal.MonographFileBaseAccessPolicy');
00017
00018 class MonographFileAssignedReviewerAccessPolicy extends MonographFileBaseAccessPolicy {
00023 function MonographFileAssignedReviewerAccessPolicy(&$request, $fileIdAndRevision = null) {
00024 parent::MonographFileBaseAccessPolicy($request, $fileIdAndRevision);
00025 }
00026
00027
00028
00029
00030
00034 function effect() {
00035 $request =& $this->getRequest();
00036
00037
00038 $user =& $request->getUser();
00039 if (!is_a($user, 'PKPUser')) return AUTHORIZATION_DENY;
00040
00041
00042 $monographFile =& $this->getMonographFile($request);
00043 if (!is_a($monographFile, 'MonographFile')) return AUTHORIZATION_DENY;
00044
00045 $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
00046 $reviewAssignments =& $reviewAssignmentDao->getByUserId($user->getId());
00047 $foundValid = false;
00048 foreach ($reviewAssignments as $reviewAssignment) {
00049 if (!$reviewAssignment->getDateConfirmed()) continue;
00050
00051 if (
00052 $monographFile->getSubmissionId() == $reviewAssignment->getSubmissionId() &&
00053 $monographFile->getFileStage() == MONOGRAPH_FILE_REVIEW_FILE &&
00054 $monographFile->getViewable()
00055 ) {
00056 $foundValid = true;
00057 }
00058 }
00059
00060
00061 if ($foundValid) {
00062 return AUTHORIZATION_PERMIT;
00063 } else {
00064 return AUTHORIZATION_DENY;
00065 }
00066 }
00067 }
00068
00069 ?>