17 import(
'lib.pkp.classes.security.authorization.internal.SubmissionFileBaseAccessPolicy');
25 parent::__construct($request, $fileIdAndRevision);
43 if (!is_a($submissionFile,
'SubmissionFile'))
return AUTHORIZATION_DENY;
47 $reviewRound = $reviewRoundDao->getBySubmissionFileId($submissionFile->getFileId());
48 if (!is_a($reviewRound,
'ReviewRound'))
return AUTHORIZATION_DENY;
49 import(
'classes.workflow.EditorDecisionActionsManager');
50 if (!(
new EditorDecisionActionsManager())->getEditorTakenActionInReviewRound($request->getContext(), $reviewRound, array(SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS))) {
51 return AUTHORIZATION_DENY;
55 $reviewRound = $reviewRoundDao->getBySubmissionFileId($submissionFile->getFileId());
56 if (!is_a($reviewRound,
'ReviewRound'))
return AUTHORIZATION_DENY;
60 if ($reviewRound->getStageId() != $stageId)
return AUTHORIZATION_DENY;
63 if ($submissionFile->getFileStage() != SUBMISSION_FILE_REVIEW_REVISION)
return AUTHORIZATION_DENY;
69 $reviewRoundDecisions = $editDecisionDao->getEditorDecisions($submissionFile->getSubmissionId(), $reviewRound->getStageId(), $reviewRound->getRound());
70 if (empty($reviewRoundDecisions))
return AUTHORIZATION_DENY;
72 $lastEditorDecision = array_pop($reviewRoundDecisions);
73 if ($lastEditorDecision[
'decision'] != SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS)
return AUTHORIZATION_DENY;
76 return AUTHORIZATION_PERMIT;