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