publicationParameterName = $publicationParameterName; $callOnDeny = [$request->getDispatcher(), 'handle404', []]; $this->setAdvice( AuthorizationPolicy::AUTHORIZATION_ADVICE_CALL_ON_DENY, $callOnDeny ); } // // Implement template methods from AuthorizationPolicy // /** * @see DataObjectRequiredPolicy::dataObjectEffect() */ public function dataObjectEffect() { // Get the publication id from the policy or, if // no parameter name is passed, look for the current // publication in an authorized submission object if ($this->publicationParameterName) { $publication = Repo::publication()->get((int) $this->getDataObjectId()); } else { $submission = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_SUBMISSION); if ($submission) { $publication = $submission->getCurrentPublication(); } } if (!isset($publication)) { return AuthorizationPolicy::AUTHORIZATION_DENY; } // Save the publication to the authorization context. $this->addAuthorizedContextObject(Application::ASSOC_TYPE_PUBLICATION, $publication); return AuthorizationPolicy::AUTHORIZATION_PERMIT; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\security\authorization\internal\PublicationRequiredPolicy', '\PublicationRequiredPolicy'); }