getDispatcher(), 'handle404', []]; $this->setAdvice( AuthorizationPolicy::AUTHORIZATION_ADVICE_CALL_ON_DENY, $callOnDeny ); } // // Implement template methods from AuthorizationPolicy // /** * @see DataObjectRequiredPolicy::dataObjectEffect() */ public function dataObjectEffect() { // Get the submission id. $submissionId = $this->getDataObjectId(); if ($submissionId === false) { return AuthorizationPolicy::AUTHORIZATION_DENY; } // Validate the submission id. $submission = Repo::submission()->get((int) $submissionId); if (!$submission instanceof Submission) { return AuthorizationPolicy::AUTHORIZATION_DENY; } // Validate that this submission belongs to the current context. $context = $this->_request->getContext(); if ($context->getId() != $submission->getData('contextId')) { return AuthorizationPolicy::AUTHORIZATION_DENY; } // Save the submission to the authorization context. $this->addAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION, $submission); return AuthorizationPolicy::AUTHORIZATION_PERMIT; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\security\authorization\internal\SubmissionRequiredPolicy', '\SubmissionRequiredPolicy'); }