_context = $request->getContext(); } // // Implement template methods from AuthorizationPolicy // public function effect() { if (!$this->_context) { return AuthorizationPolicy::AUTHORIZATION_DENY; } // Certain roles are allowed to see unpublished content. $userRoles = (array) $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES); if (count(array_intersect( $userRoles, [ Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_ASSISTANT, Role::ROLE_ID_SUB_EDITOR, Role::ROLE_ID_SUBSCRIPTION_MANAGER, ] )) > 0) { return AuthorizationPolicy::AUTHORIZATION_PERMIT; } if ($this->_context->getData('publishingMode') == \APP\journal\Journal::PUBLISHING_MODE_NONE) { return AuthorizationPolicy::AUTHORIZATION_DENY; } return AuthorizationPolicy::AUTHORIZATION_PERMIT; } } if (!PKP_STRICT_MODE) { class_alias('\APP\security\authorization\OjsJournalMustPublishPolicy', '\OjsJournalMustPublishPolicy'); }