File: /home4/cca63905/public_html/nueva/modules/wnetsecurity/src/Presenter/ConfigurationPresenter.php
<?php
/**
* Copyright since 2014 Waynet Sp. z o.o.
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 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/OSL-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 kontakt@waynet.pl so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://devdocs.prestashop-project.org/ for more information.
*
* @author Waynet Sp. z o.o. <kontakt@waynet.pl>
* @copyright since 2014 Waynet Sp. z o.o.
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
*/
declare(strict_types=1);
namespace Waynet\Security\Presenter;
use PrestaShopCorp\Billing\Services\BillingService;
class ConfigurationPresenter
{
private const TRANSLATION_SOURCE = 'configurationpresenter';
private $module;
private $context;
private $billingService;
public function __construct(
\Module $module,
\Context $context,
BillingService $billingService
) {
$this->module = $module;
$this->context = $context;
$this->billingService = $billingService;
}
public function present(): array
{
return [
'hasValidSubscription' => $this->hasValidSubscription(),
'translations' => $this->getTranslations(),
'urls' => $this->getUrls(),
];
}
private function hasValidSubscription(): bool
{
$subscription = $this->billingService->getCurrentSubscription();
return (bool) $subscription['success'];
}
private function getUrls(): array
{
return [
'lastReport' => $this->context->link->getAdminLink(\AdminWnetSecurityAjaxController::TAB_NAME, true, [], [
'action' => 'getLastReport',
]),
'reports' => $this->context->link->getAdminLink(\AdminWnetSecurityAjaxController::TAB_NAME, true, [], [
'action' => 'getReports',
]),
'updateVulnerability' => $this->context->link->getAdminLink(\AdminWnetSecurityAjaxController::TAB_NAME, true, [], [
'action' => 'updateVulnerability',
]),
];
}
private function getTranslations(): array
{
return [
'vulnerability' => [
'type' => $this->getVulnerabilityTypeTranslations(),
'severity' => $this->getSeverityTranslations(),
],
'item' => [
'hide' => $this->module->l('hide on reports', self::TRANSLATION_SOURCE),
'show' => $this->module->l('show on reports', self::TRANSLATION_SOURCE),
],
'status' => [
'subscribe' => $this->module->l('Please subscribe in order to generate and browse vulnerability reports', self::TRANSLATION_SOURCE),
'firstReport' => $this->module->l('Your first report should become available shortly after your shop\'s data has been synchronized by CloudSync', self::TRANSLATION_SOURCE),
],
];
}
private function getVulnerabilityTypeTranslations(): array
{
return [
'other' => $this->module->l('other', self::TRANSLATION_SOURCE),
'path_traversal' => $this->module->l('path traversal', self::TRANSLATION_SOURCE),
'xss' => $this->module->l('cross-site scripting (XSS)', self::TRANSLATION_SOURCE),
'sql_injection' => $this->module->l('SQL injection', self::TRANSLATION_SOURCE),
'code_injection' => $this->module->l('code injection', self::TRANSLATION_SOURCE),
'sensitive_info_exposure' => $this->module->l('sensitive information exposure', self::TRANSLATION_SOURCE),
'improper_access_control' => $this->module->l('improper access control', self::TRANSLATION_SOURCE),
'csrf' => $this->module->l('cross-site request forgery (CSRF)', self::TRANSLATION_SOURCE),
];
}
private function getSeverityTranslations(): array
{
return [
'CRITICAL' => $this->module->l('critical', self::TRANSLATION_SOURCE),
'HIGH' => $this->module->l('high', self::TRANSLATION_SOURCE),
'MEDIUM' => $this->module->l('medium', self::TRANSLATION_SOURCE),
'LOW' => $this->module->l('low', self::TRANSLATION_SOURCE),
];
}
}