Open Journal Systems  3.3.0
AssignToIssueHandler.inc.php
1 <?php
2 
17 // Import the base Handler.
18 import('classes.handler.Handler');
19 
21 
23  public $submission;
24 
26  public $publication;
27 
31  function __construct() {
32  parent::__construct();
33  $this->addRoleAssignment(
34  [ROLE_ID_SUB_EDITOR, ROLE_ID_MANAGER, ROLE_ID_ASSISTANT],
35  ['assign']
36  );
37  }
38 
39 
40  //
41  // Overridden methods from Handler
42  //
46  function initialize($request) {
47  parent::initialize($request);
48  $this->submission = $this->getAuthorizedContextObject(ASSOC_TYPE_SUBMISSION);
49  $this->publication = $this->getAuthorizedContextObject(ASSOC_TYPE_PUBLICATION);
50  $this->setupTemplate($request);
51  }
52 
56  function authorize($request, &$args, $roleAssignments) {
57  import('lib.pkp.classes.security.authorization.SubmissionAccessPolicy');
58  $this->addPolicy(new SubmissionAccessPolicy($request, $args, $roleAssignments));
59  import('lib.pkp.classes.security.authorization.PublicationAccessPolicy');
60  $this->addPolicy(new PublicationAccessPolicy($request, $args, $roleAssignments));
61  return parent::authorize($request, $args, $roleAssignments);
62  }
63 
64 
65  //
66  // Public handler methods
67  //
75  function assign($args, $request) {
76  AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_APP_SUBMISSION, LOCALE_COMPONENT_PKP_EDITOR, LOCALE_COMPONENT_APP_EDITOR);
77  $templateMgr = TemplateManager::getManager($request);
78 
79  $submissionContext = $request->getContext();
80  if (!$submissionContext || $submissionContext->getId() !== $this->submission->getData('contextId')) {
81  $submissionContext = Services::get('context')->get($this->submission->getData('contextId'));
82  }
83 
84  $publicationApiUrl = $request->getDispatcher()->url($request, ROUTE_API, $submissionContext->getPath(), 'submissions/' . $this->submission->getId() . '/publications/' . $this->publication->getId());
85  $assignToIssueForm = new APP\components\forms\publication\AssignToIssueForm($publicationApiUrl, $this->publication, $submissionContext);
86  $settingsData = [
87  'components' => [
88  FORM_ASSIGN_TO_ISSUE => $assignToIssueForm->getConfig(),
89  ],
90  ];
91 
92  $templateMgr->assign('assignData', $settingsData);
93 
94  return $templateMgr->fetchJson('controllers/modals/publish/assignToIssue.tpl');
95  }
96 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
AssignToIssueHandler\assign
assign($args, $request)
Definition: AssignToIssueHandler.inc.php:81
PublicationAccessPolicy
Class to control access to a publication.
Definition: PublicationAccessPolicy.inc.php:20
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
APP\components\forms\publication\AssignToIssueForm
Definition: AssignToIssueForm.inc.php:20
AssignToIssueHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: AssignToIssueHandler.inc.php:62
AssignToIssueHandler\$submission
$submission
Definition: AssignToIssueHandler.inc.php:26
AssignToIssueHandler
A handler to assign a publication to an issue before scheduling for publication.
Definition: AssignToIssueHandler.inc.php:20
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
PKPHandler\getAuthorizedContextObject
& getAuthorizedContextObject($assocType)
Definition: PKPHandler.inc.php:174
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
AssignToIssueHandler\initialize
initialize($request)
Definition: AssignToIssueHandler.inc.php:52
AssignToIssueHandler\$publication
$publication
Definition: AssignToIssueHandler.inc.php:32
AssignToIssueHandler\__construct
__construct()
Definition: AssignToIssueHandler.inc.php:37
SubmissionAccessPolicy
Base class to control (write) access to submissions and (read) access to submission details in OMP.
Definition: SubmissionAccessPolicy.inc.php:19
PKPHandler\addPolicy
addPolicy($authorizationPolicy, $addToTop=false)
Definition: PKPHandler.inc.php:157
Handler
Base request handler application class.
Definition: Handler.inc.php:18
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49