17 import(
'classes.handler.Handler');
31 parent::__construct();
33 [ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT],
46 parent::initialize($request);
55 function authorize($request, &$args, $roleAssignments) {
56 import(
'lib.pkp.classes.security.authorization.SubmissionAccessPolicy');
58 import(
'lib.pkp.classes.security.authorization.PublicationAccessPolicy');
60 return parent::authorize($request, $args, $roleAssignments);
74 function publish($args, $request) {
75 AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_APP_EDITOR);
78 $submissionContext = $request->getContext();
79 if (!$submissionContext || $submissionContext->getId() !== $this->submission->getData(
'contextId')) {
80 $submissionContext =
Services::get(
'context')->get($this->submission->getData(
'contextId'));
82 $primaryLocale = $submissionContext->getPrimaryLocale();
83 $allowedLocales = $submissionContext->getSupportedSubmissionLocales();
84 $errors =
Services::get(
'publication')->validatePublish($this->publication, $this->submission, $allowedLocales, $primaryLocale);
86 $publicationApiUrl = $request->getDispatcher()->url($request, ROUTE_API, $submissionContext->getPath(),
'submissions/' . $this->submission->getId() .
'/publications/' . $this->publication->getId() .
'/publish');
92 FORM_PUBLISH => $publishForm->getConfig(),
96 $templateMgr->assign(
'publishData', $settingsData);
98 return $templateMgr->fetchJson(
'controllers/modals/publish/publish.tpl');