From 309b3e65fbb77f53121e967f06ec94e7c9cb0298 Mon Sep 17 00:00:00 2001 From: Georgi Mateev <gmateev@exactag.com> Date: Wed, 18 Aug 2021 19:04:30 +0300 Subject: [PATCH] [BUGFIX] Restored LicensingService --- Classes/Service/LicensingService.php | 99 ++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 Classes/Service/LicensingService.php diff --git a/Classes/Service/LicensingService.php b/Classes/Service/LicensingService.php new file mode 100644 index 0000000..3509683 --- /dev/null +++ b/Classes/Service/LicensingService.php @@ -0,0 +1,99 @@ +<?php + +namespace SGalinski\SgNews\Service; + +/*************************************************************** + * Copyright notice + * + * (c) sgalinski Internet Services (https://www.sgalinski.de) + * + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; +use SGalinski\SgNews\Utility\ExtensionUtility; +use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; +use TYPO3\CMS\Core\Http\NullResponse; +use TYPO3\CMS\Core\Utility\GeneralUtility; + +/** + * Class SGalinski\SgNews\Service\LicensingService + */ +class LicensingService { + /** + * Licensing Service Url + */ + const URL = 'https://www.sgalinski.de/?eID=sgLicensing'; + + /** + * Licensing Service Url + */ + const EXTENSION_KEY = 'sg_news'; + + /** @var bool|NULL */ + private static $isLicenseKeyValid; + + /** + * @return boolean + */ + public static function checkKey(): bool { + if (static::$isLicenseKeyValid === NULL) { + static::$isLicenseKeyValid = FALSE; + $configuration = $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS'][self::EXTENSION_KEY] ?? []; + if (isset($configuration['key']) && $key = trim($configuration['key'])) { + static::$isLicenseKeyValid = (bool) preg_match('/^([A-Z\d]{6}-?){4}$/', $key); + } + } + + return static::$isLicenseKeyValid; + } + + /** + * Licensing Service ping + * + * @param boolean $returnUrl + * @return string + */ + public static function ping($returnUrl = FALSE): string { + try { + $configuration = $GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS'][self::EXTENSION_KEY] ?? []; + $key = ''; + if (isset($configuration['key'])) { + $key = trim($configuration['key']); + } + $params = [ + 'extension' => self::EXTENSION_KEY, + 'host' => GeneralUtility::getIndpEnv('HTTP_HOST'), + 'key' => $key + ]; + $params = http_build_query($params); + $pingUrl = self::URL; + $pingUrl .= $params !== '' ? (strpos($pingUrl, '?') === FALSE ? '?' : '&') . $params : ''; + if ($returnUrl) { + return $pingUrl; + } + + GeneralUtility::getUrl($pingUrl); + } catch (\Exception $exception) { + } + + return ''; + } +} -- GitLab