Open Journal Systems  3.3.0
PaymentsHandler.inc.php
1 <?php
2 
16 import('classes.handler.Handler');
17 
18 class PaymentsHandler extends Handler {
19 
21  var $_isBackendPage = true;
22 
26  function __construct() {
27  parent::__construct();
28  $this->addRoleAssignment(
29  array(ROLE_ID_MANAGER, ROLE_ID_SUBSCRIPTION_MANAGER),
30  array('index', 'subscriptions', 'subscriptionTypes', 'subscriptionPolicies', 'saveSubscriptionPolicies', 'paymentTypes', 'savePaymentTypes', 'payments')
31  );
32  }
33 
39  function index($args, $request) {
40  $this->setupTemplate($request);
41  AppLocale::requireComponents(LOCALE_COMPONENT_APP_MANAGER);
42  $templateMgr = TemplateManager::getManager($request);
43  $templateMgr->assign([
44  'pageTitle' => __('manager.subscriptions'),
45  ]);
46  $templateMgr->display('payments/index.tpl');
47  }
48 
52  function authorize($request, &$args, $roleAssignments) {
53  import('lib.pkp.classes.security.authorization.PKPSiteAccessPolicy');
54  $this->addPolicy(new PKPSiteAccessPolicy($request, null, $roleAssignments));
55  return parent::authorize($request, $args, $roleAssignments);
56  }
57 
63  function subscriptions($args, $request) {
64  $templateMgr = TemplateManager::getManager($request);
65  $dispatcher = $request->getDispatcher();
66  switch (array_shift($args)) {
67  case 'institutional':
68  return $templateMgr->fetchAjax(
69  'institutionalSubscriptionsGridContainer',
70  $dispatcher->url(
71  $request, ROUTE_COMPONENT, null,
72  'grid.subscriptions.InstitutionalSubscriptionsGridHandler', 'fetchGrid'
73  )
74  );
75  case 'individual':
76  return $templateMgr->fetchAjax(
77  'individualSubscriptionsGridContainer',
78  $dispatcher->url(
79  $request, ROUTE_COMPONENT, null,
80  'grid.subscriptions.IndividualSubscriptionsGridHandler', 'fetchGrid'
81  )
82  );
83  }
84  $dispatcher->handle404();
85  }
86 
92  function subscriptionTypes($args, $request) {
93  $templateMgr = TemplateManager::getManager($request);
94  $dispatcher = $request->getDispatcher();
95  return $templateMgr->fetchAjax(
96  'subscriptionTypesGridContainer',
97  $dispatcher->url(
98  $request, ROUTE_COMPONENT, null,
99  'grid.subscriptions.SubscriptionTypesGridHandler', 'fetchGrid'
100  )
101  );
102  }
103 
109  function subscriptionPolicies($args, $request) {
110  $this->validate();
111  $this->setupTemplate($request);
112 
113  import('classes.subscription.form.SubscriptionPolicyForm');
114 
115  $templateMgr = TemplateManager::getManager($request);
116 
117  if (Config::getVar('general', 'scheduled_tasks')) {
118  $templateMgr->assign('scheduledTasksEnabled', true);
119  }
120 
121  $paymentManager = Application::getPaymentManager($request->getJournal());
122  $templateMgr->assign('acceptSubscriptionPayments', $paymentManager->isConfigured());
123 
124  $subscriptionPolicyForm = new SubscriptionPolicyForm();
125  $subscriptionPolicyForm->initData();
126  return new JSONMessage(true, $subscriptionPolicyForm->fetch($request));
127  }
128 
134  function saveSubscriptionPolicies($args, $request) {
135  $this->validate();
136  $this->setupTemplate($request);
137 
138  import('classes.subscription.form.SubscriptionPolicyForm');
139  $subscriptionPolicyForm = new SubscriptionPolicyForm();
140  $subscriptionPolicyForm->readInputData();
141  if ($subscriptionPolicyForm->validate()) {
142  $subscriptionPolicyForm->execute();
143  $notificationManager = new NotificationManager();
144  $user = $request->getUser();
145  $notificationManager->createTrivialNotification($user->getId());
146  return new JSONMessage(true);
147  }
148  return new JSONMessage(true, $subscriptionPolicyForm->fetch($request));
149  }
150 
156  function paymentTypes($args, $request) {
157  $this->validate();
158  $this->setupTemplate($request);
159 
160  import('classes.subscription.form.PaymentTypesForm');
161 
162  $paymentTypesForm = new PaymentTypesForm();
163  $paymentTypesForm->initData();
164  return new JSONMessage(true, $paymentTypesForm->fetch($request));
165  }
166 
172  function savePaymentTypes($args, $request) {
173  $this->validate();
174  $this->setupTemplate($request);
175 
176  import('classes.subscription.form.PaymentTypesForm');
177  $paymentTypesForm = new PaymentTypesForm();
178  $paymentTypesForm->readInputData();
179  if ($paymentTypesForm->validate()) {
180  $paymentTypesForm->execute();
181  $notificationManager = new NotificationManager();
182  $user = $request->getUser();
183  $notificationManager->createTrivialNotification($user->getId());
184  return new JSONMessage(true);
185  }
186  return new JSONMessage(true, $paymentTypesForm->fetch($request));
187  }
188 
194  function payments($args, $request) {
195  $templateMgr = TemplateManager::getManager($request);
196  $dispatcher = $request->getDispatcher();
197  return $templateMgr->fetchAjax(
198  'paymentsGridContainer',
199  $dispatcher->url(
200  $request, ROUTE_COMPONENT, null,
201  'grid.subscriptions.PaymentsGridHandler', 'fetchGrid'
202  )
203  );
204  }
205 }
PKPHandler\addRoleAssignment
addRoleAssignment($roleIds, $operations)
Definition: PKPHandler.inc.php:213
AppLocale\requireComponents
static requireComponents()
Definition: env1/MockAppLocale.inc.php:56
PaymentsHandler\paymentTypes
paymentTypes($args, $request)
Definition: PaymentsHandler.inc.php:156
PaymentTypesForm
Permit configuration of the various payment types.
Definition: PaymentTypesForm.inc.php:18
PaymentsHandler\index
index($args, $request)
Definition: PaymentsHandler.inc.php:39
PaymentsHandler\authorize
authorize($request, &$args, $roleAssignments)
Definition: PaymentsHandler.inc.php:52
Application\getPaymentManager
static getPaymentManager($context)
Definition: Application.inc.php:226
PaymentsHandler\payments
payments($args, $request)
Definition: PaymentsHandler.inc.php:194
PaymentsHandler\subscriptions
subscriptions($args, $request)
Definition: PaymentsHandler.inc.php:63
JSONMessage
Class to represent a JSON (Javascript Object Notation) message.
Definition: JSONMessage.inc.php:18
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
PaymentsHandler
Handle requests for payment management.
Definition: PaymentsHandler.inc.php:18
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
SubscriptionPolicyForm
Form for managers to setup subscription policies.
Definition: SubscriptionPolicyForm.inc.php:28
PaymentsHandler\savePaymentTypes
savePaymentTypes($args, $request)
Definition: PaymentsHandler.inc.php:172
PKPHandler\validate
validate($requiredContexts=null, $request=null)
Definition: PKPHandler.inc.php:351
PaymentsHandler\saveSubscriptionPolicies
saveSubscriptionPolicies($args, $request)
Definition: PaymentsHandler.inc.php:134
PKPHandler\setupTemplate
setupTemplate($request)
Definition: PKPHandler.inc.php:466
PaymentsHandler\subscriptionTypes
subscriptionTypes($args, $request)
Definition: PaymentsHandler.inc.php:92
NotificationManager
Definition: NotificationManager.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
PaymentsHandler\$_isBackendPage
$_isBackendPage
Definition: PaymentsHandler.inc.php:21
PKPSiteAccessPolicy
Class to that makes sure that a user is logged in.
Definition: PKPSiteAccessPolicy.inc.php:20
PaymentsHandler\subscriptionPolicies
subscriptionPolicies($args, $request)
Definition: PaymentsHandler.inc.php:109
PaymentsHandler\__construct
__construct()
Definition: PaymentsHandler.inc.php:26