One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
public_html
/
backup
/
pages
/
user
/
Edit File:
UserHandler.inc.php
<?php /** * @file pages/user/UserHandler.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class UserHandler * @ingroup pages_user * * @brief Handle requests for user functions. */ import('lib.pkp.pages.user.PKPUserHandler'); class UserHandler extends PKPUserHandler { /** * Display subscriptions page * @param $args array * @param $request PKPRequest */ function subscriptions($args, $request) { $this->validate(null, $request); $journal = $request->getJournal(); $user = $request->getUser(); $templateMgr = TemplateManager::getManager($request); if (!$journal || !$user || $journal->getData('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) { $request->redirect(null, 'index'); } $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ $individualSubscriptionTypesExist = $subscriptionTypeDao->subscriptionTypesExistByInstitutional($journal->getId(), false); $institutionalSubscriptionTypesExist = $subscriptionTypeDao->subscriptionTypesExistByInstitutional($journal->getId(), true); if (!$individualSubscriptionTypesExist && !$institutionalSubscriptionTypesExist) $request->redirect(null, 'index'); // Subscriptions contact and additional information // Get subscriptions and options for current journal if ($individualSubscriptionTypesExist) { $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); /* @var $subscriptionDao IndividualSubscriptionDAO */ $userIndividualSubscription = $subscriptionDao->getByUserIdForJournal($user->getId(), $journal->getId()); $templateMgr->assign('userIndividualSubscription', $userIndividualSubscription); } if ($institutionalSubscriptionTypesExist) { $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */ $userInstitutionalSubscriptions = $subscriptionDao->getByUserIdForJournal($user->getId(), $journal->getId()); $templateMgr->assign('userInstitutionalSubscriptions', $userInstitutionalSubscriptions); } $paymentManager = Application::getPaymentManager($journal); $this->setupTemplate($request); $templateMgr->assign(array( 'subscriptionName' => $journal->getData('subscriptionName'), 'subscriptionEmail' => $journal->getData('subscriptionEmail'), 'subscriptionPhone' => $journal->getData('subscriptionPhone'), 'subscriptionMailingAddress' => $journal->getData('subscriptionMailingAddress'), 'subscriptionAdditionalInformation' => $journal->getLocalizedData('subscriptionAdditionalInformation'), 'journalTitle' => $journal->getLocalizedName(), 'journalPath' => $journal->getPath(), 'individualSubscriptionTypesExist' => $individualSubscriptionTypesExist, 'institutionalSubscriptionTypesExist' => $institutionalSubscriptionTypesExist, 'paymentsEnabled' => $paymentManager->isConfigured(), )); $templateMgr->display('frontend/pages/userSubscriptions.tpl'); } /** * Determine if the journal's setup has been sufficiently completed. * @param $journal Object * @return boolean True iff setup is incomplete */ function _checkIncompleteSetup($journal) { if($journal->getLocalizedAcronym() == '' || $journal->getData('contactEmail') == '' || $journal->getData('contactName') == '' || $journal->getLocalizedData('abbreviation') == '') { return true; } else return false; } /** * Setup common template variables. * @param $request PKPRequest */ function setupTemplate($request = null) { parent::setupTemplate($request); AppLocale::requireComponents(LOCALE_COMPONENT_APP_AUTHOR, LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_APP_MANAGER, LOCALE_COMPONENT_PKP_GRID); } // // Payments // /** * Purchase a subscription. * @param $args array * @param $request PKPRequest */ function purchaseSubscription($args, $request) { $this->validate(null, $request); $journal = $request->getJournal(); if (empty($args) || !$journal || $journal->getData('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) { $request->redirect(null, 'index'); } $paymentManager = Application::getPaymentManager($journal); $acceptSubscriptionPayments = $paymentManager->isConfigured(); if (!$acceptSubscriptionPayments) $request->redirect(null, 'index'); $this->setupTemplate($request); $user = $request->getUser(); $institutional = array_shift($args); if (!empty($args)) { $subscriptionId = (int) array_shift($args); } if ($institutional == 'institutional') { $institutional = true; import('classes.subscription.form.UserInstitutionalSubscriptionForm'); $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */ } else { $institutional = false; import('classes.subscription.form.UserIndividualSubscriptionForm'); $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); /* @var $subscriptionDao IndividualSubscriptionDAO */ } if (isset($subscriptionId)) { // Ensure subscription to be updated is for this user if (!$subscriptionDao->subscriptionExistsByUser($subscriptionId, $user->getId())) { $request->redirect(null, 'index'); } // Ensure subscription can be updated $subscription = $subscriptionDao->getById($subscriptionId); $subscriptionStatus = $subscription->getStatus(); import('classes.subscription.Subscription'); $validStatus = array( SUBSCRIPTION_STATUS_ACTIVE, SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT, SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT ); if (!in_array($subscriptionStatus, $validStatus)) $request->redirect(null, 'index'); if ($institutional) { $subscriptionForm = new UserInstitutionalSubscriptionForm($request, $user->getId(), $subscriptionId); } else { $subscriptionForm = new UserIndividualSubscriptionForm($request, $user->getId(), $subscriptionId); } } else { if ($institutional) { $subscriptionForm = new UserInstitutionalSubscriptionForm($request, $user->getId()); } else { // Ensure user does not already have an individual subscription if ($subscriptionDao->subscriptionExistsByUserForJournal($user->getId(), $journal->getId())) { $request->redirect(null, 'index'); } $subscriptionForm = new UserIndividualSubscriptionForm($request, $user->getId()); } } $subscriptionForm->initData(); $subscriptionForm->display(); } /** * Pay for a subscription purchase. * @param $args array * @param $request PKPRequest */ function payPurchaseSubscription($args, $request) { $this->validate(null, $request); if (empty($args)) $request->redirect(null, 'index'); $journal = $request->getJournal(); if (!$journal) $request->redirect(null, 'index'); if ($journal->getData('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) $request->redirect(null, 'index'); $paymentManager = Application::getPaymentManager($journal); $acceptSubscriptionPayments = $paymentManager->isConfigured(); if (!$acceptSubscriptionPayments) $request->redirect(null, 'index'); $this->setupTemplate($request); $user = $request->getUser(); $institutional = array_shift($args); if (!empty($args)) { $subscriptionId = (int) array_shift($args); } if ($institutional == 'institutional') { $institutional = true; import('classes.subscription.form.UserInstitutionalSubscriptionForm'); $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */ } else { $institutional = false; import('classes.subscription.form.UserIndividualSubscriptionForm'); $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); /* @var $subscriptionDao IndividualSubscriptionDAO */ } if (isset($subscriptionId)) { // Ensure subscription to be updated is for this user if (!$subscriptionDao->subscriptionExistsByUser($subscriptionId, $user->getId())) { $request->redirect(null, 'index'); } // Ensure subscription can be updated $subscription = $subscriptionDao->getById($subscriptionId); $subscriptionStatus = $subscription->getStatus(); import('classes.subscription.Subscription'); $validStatus = array( SUBSCRIPTION_STATUS_ACTIVE, SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT, SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT ); if (!in_array($subscriptionStatus, $validStatus)) $request->redirect(null, 'index'); if ($institutional) { $subscriptionForm = new UserInstitutionalSubscriptionForm($request, $user->getId(), $subscriptionId); } else { $subscriptionForm = new UserIndividualSubscriptionForm($request, $user->getId(), $subscriptionId); } } else { if ($institutional) { $subscriptionForm = new UserInstitutionalSubscriptionForm($request, $user->getId()); } else { // Ensure user does not already have an individual subscription if ($subscriptionDao->subscriptionExistsByUserForJournal($user->getId(), $journal->getId())) { $request->redirect(null, 'index'); } $subscriptionForm = new UserIndividualSubscriptionForm($request, $user->getId()); } } $subscriptionForm->readInputData(); // Check for any special cases before trying to save if ($request->getUserVar('addIpRange')) { $editData = true; $ipRanges = $subscriptionForm->getData('ipRanges'); $ipRanges[] = ''; $subscriptionForm->setData('ipRanges', $ipRanges); } else if (($delIpRange = $request->getUserVar('delIpRange')) && count($delIpRange) == 1) { $editData = true; list($delIpRange) = array_keys($delIpRange); $delIpRange = (int) $delIpRange; $ipRanges = $subscriptionForm->getData('ipRanges'); array_splice($ipRanges, $delIpRange, 1); $subscriptionForm->setData('ipRanges', $ipRanges); } if (isset($editData)) { $subscriptionForm->display(); } else { if ($subscriptionForm->validate()) { $subscriptionForm->execute(); } else { $subscriptionForm->display(); } } } /** * Complete the purchase subscription process. * @param $args array * @param $request PKPRequest */ function completePurchaseSubscription($args, $request) { $this->validate(null, $request); $journal = $request->getJournal(); if (!$journal || count($args) != 2 || $journal->getData('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) { $request->redirect(null, 'index'); } $paymentManager = Application::getPaymentManager($journal); $acceptSubscriptionPayments = $paymentManager->isConfigured(); if (!$acceptSubscriptionPayments) $request->redirect(null, 'index'); $this->setupTemplate($request); $user = $request->getUser(); $institutional = array_shift($args); $subscriptionId = (int) array_shift($args); if ($institutional == 'institutional') { $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */ } else { $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); /* @var $subscriptionDao IndividualSubscriptionDAO */ } if (!$subscriptionDao->subscriptionExistsByUser($subscriptionId, $user->getId())) $request->redirect(null, 'index'); $subscription = $subscriptionDao->getById($subscriptionId); $subscriptionStatus = $subscription->getStatus(); import('classes.subscription.Subscription'); $validStatus = array(SUBSCRIPTION_STATUS_ACTIVE, SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT); if (!in_array($subscriptionStatus, $validStatus)) $request->redirect(null, 'index'); $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ $subscriptionType = $subscriptionTypeDao->getById($subscription->getTypeId()); $queuedPayment = $paymentManager->createQueuedPayment($request, PAYMENT_TYPE_PURCHASE_SUBSCRIPTION, $user->getId(), $subscriptionId, $subscriptionType->getCost(), $subscriptionType->getCurrencyCodeAlpha()); $paymentManager->queuePayment($queuedPayment); $paymentForm = $paymentManager->getPaymentForm($queuedPayment); $paymentForm->display($request); } /** * Pay the "renew subscription" fee. * @param $args array * @param $request PKPRequest */ function payRenewSubscription($args, $request) { $this->validate(null, $request); $journal = $request->getJournal(); if (count($args) != 2 || !$journal || $journal->getData('publishingMode') != PUBLISHING_MODE_SUBSCRIPTION) { $request->redirect(null, 'index'); } $paymentManager = Application::getPaymentManager($journal); $acceptSubscriptionPayments = $paymentManager->isConfigured(); if (!$acceptSubscriptionPayments) $request->redirect(null, 'index'); $this->setupTemplate($request); $user = $request->getUser(); $institutional = array_shift($args); $subscriptionId = (int) array_shift($args); if ($institutional == 'institutional') { $subscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO'); /* @var $subscriptionDao InstitutionalSubscriptionDAO */ } else { $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); /* @var $subscriptionDao IndividualSubscriptionDAO */ } if (!$subscriptionDao->subscriptionExistsByUser($subscriptionId, $user->getId())) $request->redirect(null, 'index'); $subscription = $subscriptionDao->getById($subscriptionId); if ($subscription->isNonExpiring()) $request->redirect(null, 'index'); import('classes.subscription.Subscription'); $subscriptionStatus = $subscription->getStatus(); $validStatus = array( SUBSCRIPTION_STATUS_ACTIVE, SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT, SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT ); if (!in_array($subscriptionStatus, $validStatus)) $request->redirect(null, 'index'); $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ $subscriptionType = $subscriptionTypeDao->getById($subscription->getTypeId()); $queuedPayment = $paymentManager->createQueuedPayment($request, PAYMENT_TYPE_RENEW_SUBSCRIPTION, $user->getId(), $subscriptionId, $subscriptionType->getCost(), $subscriptionType->getCurrencyCodeAlpha()); $paymentManager->queuePayment($queuedPayment); $paymentForm = $paymentManager->getPaymentForm($queuedPayment); $paymentForm->display($request); } /** * Pay for a membership. * @param $args array * @param $request PKPRequest */ function payMembership($args, $request) { $this->validate(null, $request); $this->setupTemplate($request); $journal = $request->getJournal(); $user = $request->getUser(); $paymentManager = Application::getPaymentManager($journal); $queuedPayment = $paymentManager->createQueuedPayment($request, PAYMENT_TYPE_MEMBERSHIP, $user->getId(), null, $journal->getData('membershipFee')); $paymentManager->queuePayment($queuedPayment); $paymentForm = $paymentManager->getPaymentForm($queuedPayment); $paymentForm->display($request); } }
Simpan