JEMBOT MAWOT Bypass Shell
<?php
/**
* Copyright since 2007 PrestaShop SA and Contributors
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License version 3.0
* that is bundled with this package in the file LICENSE.md.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/AFL-3.0
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* @author PrestaShop SA and Contributors <contact@prestashop.com>
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
*/
/**
* This Controller receives customer after approval on checkout page
*/
class Ps_CashondeliveryValidationModuleFrontController extends ModuleFrontController
{
/**
* {@inheritdoc}
*/
public $ssl = true;
/**
* @var PaymentModule
*/
public $module;
/**
* {@inheritdoc}
*/
public function postProcess()
{
if (false === $this->checkIfContextIsValid() || false === $this->checkIfPaymentOptionIsAvailable()) {
Tools::redirect($this->context->link->getPageLink(
'order',
true,
(int) $this->context->language->id,
[
'step' => 1,
]
));
}
$customer = new Customer($this->context->cart->id_customer);
if (false === Validate::isLoadedObject($customer)) {
Tools::redirect($this->context->link->getPageLink(
'order',
true,
(int) $this->context->language->id,
[
'step' => 1,
]
));
}
$this->module->validateOrder(
(int) $this->context->cart->id,
(int) Configuration::getGlobalValue(Ps_Cashondelivery::CONFIG_OS_CASH_ON_DELIVERY),
(float) $this->context->cart->getOrderTotal(true, Cart::BOTH),
$this->module->displayName,
null,
[],
(int) $this->context->currency->id,
false,
$customer->secure_key
);
Tools::redirect($this->context->link->getPageLink(
'order-confirmation',
true,
(int) $this->context->language->id,
[
'id_cart' => (int) $this->context->cart->id,
'id_module' => (int) $this->module->id,
'id_order' => (int) $this->module->currentOrder,
'key' => $customer->secure_key,
]
));
}
/**
* Check if the context is valid
* - Cart is loaded
* - Cart has a Customer
* - Cart has a delivery address
* - Cart has an invoice address
* - Cart doesn't contains virtual product
*
* @return bool
*/
private function checkIfContextIsValid()
{
return true === Validate::isLoadedObject($this->context->cart)
&& true === Validate::isUnsignedInt($this->context->cart->id_customer)
&& true === Validate::isUnsignedInt($this->context->cart->id_address_delivery)
&& true === Validate::isUnsignedInt($this->context->cart->id_address_invoice)
&& false === $this->context->cart->isVirtualCart();
}
/**
* Check that this payment option is still available in case the customer changed
* his address just before the end of the checkout process
*
* @return bool
*/
private function checkIfPaymentOptionIsAvailable()
{
$modules = Module::getPaymentModules();
if (empty($modules)) {
return false;
}
foreach ($modules as $module) {
if (isset($module['name']) && $this->module->name === $module['name']) {
return true;
}
}
return false;
}
}
xxxxx1.0, XXX xxxx