Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Xentral\Components\EnvironmentConfig;
|
||||
|
||||
use SplFileInfo;
|
||||
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||||
use Config;
|
||||
use License;
|
||||
use Xentral\Modules\Api\LegacyBridge\LegacyApplication;
|
||||
|
||||
class Bootstrap
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function registerServices(): array
|
||||
{
|
||||
return [
|
||||
'EnvironmentConfig' => 'onInitEnvironmentConfig',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return EnvironmentConfig
|
||||
*/
|
||||
public static function onInitEnvironmentConfig(ContainerInterface $container): EnvironmentConfig
|
||||
{
|
||||
$provider = self::onInitEnvironmentConfigProvider($container);
|
||||
|
||||
return $provider->createEnvironmentConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return EnvironmentConfigProvider
|
||||
*/
|
||||
private static function onInitEnvironmentConfigProvider(ContainerInterface $container): EnvironmentConfigProvider
|
||||
{
|
||||
/** @var LegacyApplication $app */
|
||||
$app = $container->get('LegacyApplication');
|
||||
|
||||
if (!class_exists('License')) {
|
||||
$test = dirname(__DIR__, 3) . '/phpwf/plugins/class.license.php';
|
||||
$file = new SplFileInfo($test);
|
||||
if ($file->isFile()) {
|
||||
include $test;
|
||||
}
|
||||
}
|
||||
|
||||
return new EnvironmentConfigProvider(new License(), $app->Conf);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Components\EnvironmentConfig;
|
||||
|
||||
final class EnvironmentConfig
|
||||
{
|
||||
/**
|
||||
* @var string $databaseHost
|
||||
*/
|
||||
private $databaseHost;
|
||||
|
||||
/**
|
||||
* @var string $databaseName
|
||||
*/
|
||||
private $databaseName;
|
||||
|
||||
/**
|
||||
* @var string $databaseUser
|
||||
*/
|
||||
private $databaseUser;
|
||||
|
||||
/**
|
||||
* @var string $databasePassword
|
||||
*/
|
||||
private $databasePassword;
|
||||
|
||||
/**
|
||||
* @var int $databasePort
|
||||
*/
|
||||
private $databasePort;
|
||||
|
||||
/**
|
||||
* @var string $userdataDirectoryPath
|
||||
*/
|
||||
private $userdataDirectoryPath;
|
||||
|
||||
/**
|
||||
* @var array|null $ioncubeSystemInformation
|
||||
*/
|
||||
private $ioncubeSystemInformation;
|
||||
|
||||
/**
|
||||
* @param string $databaseHost
|
||||
* @param string $databaseName
|
||||
* @param string $databaseUser
|
||||
* @param string $databasePassword
|
||||
* @param int $databasePort
|
||||
* @param string $userdataDirectoryPath
|
||||
* @param array $ioncubeSystemInformation
|
||||
*/
|
||||
public function __construct(
|
||||
string $databaseHost,
|
||||
string $databaseName,
|
||||
string $databaseUser,
|
||||
string $databasePassword,
|
||||
int $databasePort,
|
||||
string $userdataDirectoryPath,
|
||||
?array $ioncubeSystemInformation
|
||||
) {
|
||||
$this->databaseHost = $databaseHost;
|
||||
$this->databaseName = $databaseName;
|
||||
$this->databaseUser = $databaseUser;
|
||||
$this->databasePassword = $databasePassword;
|
||||
$this->databasePort = $databasePort;
|
||||
$this->userdataDirectoryPath = $userdataDirectoryPath;
|
||||
$this->ioncubeSystemInformation = $ioncubeSystemInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDatabaseHost(): string
|
||||
{
|
||||
return $this->databaseHost;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDatabaseName(): string
|
||||
{
|
||||
return $this->databaseName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDatabaseUser(): string
|
||||
{
|
||||
return $this->databaseUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDatabasePassword(): string
|
||||
{
|
||||
return $this->databasePassword;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getDatabasePort(): int
|
||||
{
|
||||
return $this->databasePort;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getUserdataDirectoryPath(): string
|
||||
{
|
||||
return $this->userdataDirectoryPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ?array
|
||||
*/
|
||||
public function getIoncubeSystemInformation(): ?array
|
||||
{
|
||||
return $this->ioncubeSystemInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isSystemHostedOnCloud(): bool
|
||||
{
|
||||
return !empty($this->ioncubeSystemInformation['iscloud']['value']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isSystemFlaggedAsDevelopmentVersion(): bool
|
||||
{
|
||||
return !empty($this->ioncubeSystemInformation['isdevelopmentversion']['value']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isSystemFlaggedAsTestVersion(): bool
|
||||
{
|
||||
return !empty($this->ioncubeSystemInformation['testlizenz']['value']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxUser(): int
|
||||
{
|
||||
if (!isset($this->ioncubeSystemInformation['maxuser']['value'])) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int)$this->ioncubeSystemInformation['maxuser']['value'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getMaxLightUser(): int
|
||||
{
|
||||
if (!isset($this->ioncubeSystemInformation['maxlightuser']['value'])) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int)$this->ioncubeSystemInformation['maxlightuser']['value'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int|null
|
||||
*/
|
||||
public function getExpirationTimeStamp(): ?int
|
||||
{
|
||||
if (!isset($this->ioncubeSystemInformation['expdate']['value'])) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (int)$this->ioncubeSystemInformation['expdate']['value'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getValueOfSpecificIoncubeSystemInformation(string $name): ?string
|
||||
{
|
||||
if ($this->ioncubeSystemInformation === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (array_key_exists($name, $this->ioncubeSystemInformation)) {
|
||||
return $this->ioncubeSystemInformation[$name]['value'];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSystemFallbackEmailAddresses(): array
|
||||
{
|
||||
$emailAddresses = [];
|
||||
$mailAddressSelfBuyCustomer = (string)$this->getValueOfSpecificIoncubeSystemInformation('buyemail');
|
||||
if ($mailAddressSelfBuyCustomer !== '') {
|
||||
$emailAddresses[] = $mailAddressSelfBuyCustomer;
|
||||
}
|
||||
|
||||
$mailAddressCustomerLicence = (string)$this->getValueOfSpecificIoncubeSystemInformation('emaillicence');
|
||||
if ($mailAddressCustomerLicence !== ''
|
||||
&& strpos($mailAddressCustomerLicence, '@') !== false
|
||||
&& strpos($mailAddressCustomerLicence, '@xentral.com') === false
|
||||
&& strpos($mailAddressCustomerLicence, '@xentral.biz') === false) {
|
||||
$emailAddresses[] = $mailAddressCustomerLicence;
|
||||
}
|
||||
|
||||
//in old licences email-address of customer can be insert in name instead email
|
||||
$nameCustomerLicence = (string)$this->getValueOfSpecificIoncubeSystemInformation('namelicence');
|
||||
if ($nameCustomerLicence !== ''
|
||||
&& strpos($nameCustomerLicence, '@') !== false
|
||||
&& strpos($nameCustomerLicence, '@xentral.com') === false
|
||||
&& strpos($nameCustomerLicence, '@xentral.biz') === false) {
|
||||
$emailAddresses[] = $nameCustomerLicence;
|
||||
}
|
||||
|
||||
return $emailAddresses;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Components\EnvironmentConfig;
|
||||
|
||||
use Config;
|
||||
use License;
|
||||
|
||||
final class EnvironmentConfigProvider
|
||||
{
|
||||
/** @var License $license */
|
||||
private $license;
|
||||
|
||||
/** @var Config $config */
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* @param License $license
|
||||
* @param Config $config
|
||||
*/
|
||||
public function __construct(License $license, Config $config)
|
||||
{
|
||||
$this->license = $license;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return EnvironmentConfig
|
||||
*/
|
||||
public function createEnvironmentConfig(): EnvironmentConfig
|
||||
{
|
||||
$environmentConfig = new EnvironmentConfig(
|
||||
$this->config->WFdbhost, $this->config->WFdbname, $this->config->WFdbuser,
|
||||
$this->config->WFdbpass, $this->config->WFdbport, $this->config->WFuserdata,
|
||||
(array)$this->license->getProperties()
|
||||
);
|
||||
|
||||
return $environmentConfig;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user