mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-14 12:07:15 +01:00
Compare commits
4 Commits
95cb03f43b
...
99e40b0f1c
Author | SHA1 | Date | |
---|---|---|---|
|
99e40b0f1c | ||
|
44b8dc0fe0 | ||
|
57e79d442c | ||
|
d155c99bfc |
@ -44,14 +44,6 @@ class Bootstrap
|
||||
/** @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);
|
||||
return new EnvironmentConfigProvider($app->Conf);
|
||||
}
|
||||
}
|
||||
|
@ -34,11 +34,6 @@ final class EnvironmentConfig
|
||||
*/
|
||||
private $userdataDirectoryPath;
|
||||
|
||||
/**
|
||||
* @var array|null $ioncubeSystemInformation
|
||||
*/
|
||||
private $ioncubeSystemInformation;
|
||||
|
||||
/**
|
||||
* @param string $databaseHost
|
||||
* @param string $databaseName
|
||||
@ -46,7 +41,6 @@ final class EnvironmentConfig
|
||||
* @param string $databasePassword
|
||||
* @param int $databasePort
|
||||
* @param string $userdataDirectoryPath
|
||||
* @param array $ioncubeSystemInformation
|
||||
*/
|
||||
public function __construct(
|
||||
string $databaseHost,
|
||||
@ -54,8 +48,7 @@ final class EnvironmentConfig
|
||||
string $databaseUser,
|
||||
string $databasePassword,
|
||||
int $databasePort,
|
||||
string $userdataDirectoryPath,
|
||||
?array $ioncubeSystemInformation
|
||||
string $userdataDirectoryPath
|
||||
) {
|
||||
$this->databaseHost = $databaseHost;
|
||||
$this->databaseName = $databaseName;
|
||||
@ -63,7 +56,6 @@ final class EnvironmentConfig
|
||||
$this->databasePassword = $databasePassword;
|
||||
$this->databasePort = $databasePort;
|
||||
$this->userdataDirectoryPath = $userdataDirectoryPath;
|
||||
$this->ioncubeSystemInformation = $ioncubeSystemInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,121 +105,4 @@ final class EnvironmentConfig
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -7,19 +7,14 @@ 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)
|
||||
public function __construct(Config $config)
|
||||
{
|
||||
$this->license = $license;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
@ -30,8 +25,7 @@ final class EnvironmentConfigProvider
|
||||
{
|
||||
$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()
|
||||
$this->config->WFdbpass, $this->config->WFdbport, $this->config->WFuserdata
|
||||
);
|
||||
|
||||
return $environmentConfig;
|
||||
|
@ -84,10 +84,6 @@ final class ErrorHandler
|
||||
public function handleException($exception)
|
||||
{
|
||||
$title = null;
|
||||
if ($this->isIoncubeError($exception)) {
|
||||
$title = $this->handleIoncubeError($exception);
|
||||
}
|
||||
|
||||
$data = new ErrorPageData($exception, $title);
|
||||
$renderer = new ErrorPageRenderer($data);
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
@ -125,96 +121,4 @@ final class ErrorHandler
|
||||
{
|
||||
return in_array((int)$type, self::THROWABLE_ERROR_TYPES, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Throwable $exception
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isIoncubeError($exception)
|
||||
{
|
||||
if ((int)$exception->getCode() !== E_CORE_ERROR) {
|
||||
return false;
|
||||
}
|
||||
if (strpos($exception->getMessage(), 'requires a license file.') !== false) {
|
||||
return true;
|
||||
}
|
||||
if (strpos($exception->getMessage(), 'ionCube Encoder') !== false) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Throwable $exception
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
private function handleIoncubeError($exception)
|
||||
{
|
||||
$file = $this->extractFileFromIoncubeError($exception);
|
||||
if (empty($file)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!$this->isDeleteableFile($file)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@unlink($file);
|
||||
if(is_file($file)) {
|
||||
return sprintf('Es wurde eine alte Systemdatei gefunden die nicht manuell gelöscht werden konnte.
|
||||
Bitte löschen Sie die Datei %s', $file);
|
||||
}
|
||||
return 'Es wurde eine alte Systemdatei gefunden und automatisch gelöscht.
|
||||
Bitte führen Sie das Update nochmal durch dann sollte diese Meldung nicht mehr erscheinen.';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $file
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function isDeleteableFile(string $file)
|
||||
{
|
||||
if (!is_file($file)) {
|
||||
return false;
|
||||
}
|
||||
$dir = dirname($file);
|
||||
foreach (self::DELETE_FILE_FOLDERS as $folder) {
|
||||
if (substr($dir, -strlen($folder)) === $folder) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @example "<br>The encoded file <b>/var/www/xentral/www/pages/adresse.php</b> requires a license file.<br>"
|
||||
* "The license file <b>/var/www/xentral/key.php</b> is corrupt."
|
||||
*
|
||||
* @param Throwable $exception
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
private function extractFileFromIoncubeError($exception)
|
||||
{
|
||||
$message = strip_tags($exception->getMessage());
|
||||
$theFilePos = stripos($message, 'The File ');
|
||||
if ($theFilePos === false) {
|
||||
$theFilePos = strpos($message, 'The encoded file');
|
||||
if ($theFilePos === false) {
|
||||
return null;
|
||||
}
|
||||
$theFilePos += 16;
|
||||
} else {
|
||||
$theFilePos += 9;
|
||||
}
|
||||
$file = trim(substr($message, $theFilePos));
|
||||
$file = explode(' ', $file);
|
||||
|
||||
return reset($file);
|
||||
}
|
||||
}
|
||||
|
@ -323,15 +323,6 @@ final class ErrorPageData implements JsonSerializable
|
||||
'ldap' => function () {
|
||||
return function_exists('ldap_connect');
|
||||
},
|
||||
'ioncube' => function () {
|
||||
if (!function_exists('ioncube_loader_version')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ioncubeMajorVersion = (int)@ioncube_loader_version();
|
||||
|
||||
return $ioncubeMajorVersion >= 5;
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -6,9 +6,6 @@ namespace Xentral\Modules\GoogleApi;
|
||||
|
||||
final class GoogleScope
|
||||
{
|
||||
/** @var string CLOUDPRINT */
|
||||
public const CLOUDPRINT = 'https://www.googleapis.com/auth/cloudprint';
|
||||
|
||||
/** @var string CALENDAR */
|
||||
public const CALENDAR = 'https://www.googleapis.com/auth/calendar';
|
||||
|
||||
|
@ -213,25 +213,6 @@ final class GoogleAccountGateway
|
||||
return array_values($pairs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Will be removed after Dec 31. 2020
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @codeCoverageIgnore
|
||||
*
|
||||
* @return GoogleAccountData
|
||||
*/
|
||||
public function getCloudPrintAccount(): GoogleAccountData
|
||||
{
|
||||
$accounts = $this->getAccountsByScope(GoogleScope::CLOUDPRINT);
|
||||
if (count($accounts) < 1) {
|
||||
throw new GoogleAccountNotFoundException('No cloud printing account available.');
|
||||
}
|
||||
|
||||
return $accounts[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $accountId
|
||||
*
|
||||
|
@ -1,109 +0,0 @@
|
||||
|
||||
/**
|
||||
* Für die Bedienung der Modul-Oberfläche
|
||||
*/
|
||||
var PrinterGoogleCloudPrint = (function ($) {
|
||||
'use strict';
|
||||
|
||||
var me = {
|
||||
|
||||
isInitialized: false,
|
||||
$apiSelect: null,
|
||||
$printerSelect: null,
|
||||
initApiValue: null,
|
||||
initPrinterValue: null,
|
||||
printercache: {},
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
init: function () {
|
||||
if (me.isInitialized === true) {
|
||||
return;
|
||||
}
|
||||
me.$apiSelect = $('select[name="google_api"]');
|
||||
me.$printerSelect = $('select[name="google_printer"]');
|
||||
me.initApiValue = me.$apiSelect.val();
|
||||
me.initPrinterValue = me.$printerSelect.val();
|
||||
|
||||
var options = {};
|
||||
$('select[name="google_printer"] option').each( function () {
|
||||
options[$(this).attr('value')] = $(this).text();
|
||||
});
|
||||
me.printercache[me.initApiValue] = options;
|
||||
|
||||
me.registerEvents();
|
||||
me.isInitialized = true;
|
||||
},
|
||||
|
||||
setPrinterSelectOptions: function(options, selected) {
|
||||
me.$printerSelect.empty(); // remove old options
|
||||
$.each(options, function(value, display) {
|
||||
me.$printerSelect.append($('<option></option>').attr('value', value).text(display));
|
||||
});
|
||||
if (selected in options) {
|
||||
me.$printerSelect.val(selected);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {void}
|
||||
*/
|
||||
registerEvents: function () {
|
||||
me.$apiSelect.change(function () {
|
||||
me.ajaxLoadPrinterOptions(this.value);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {number} fieldId
|
||||
*
|
||||
* @return {void}
|
||||
*/
|
||||
ajaxLoadPrinterOptions: function (apiName) {
|
||||
if (apiName === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (apiName in me.printercache) {
|
||||
me.setPrinterSelectOptions(me.printercache[apiName], me.initPrinterValue);
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: 'index.php?module=googleapi&action=ajaxprinters',
|
||||
data: {
|
||||
api_name: apiName
|
||||
},
|
||||
method: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
me.$printerSelect.prop('disabled', true);
|
||||
me.$apiSelect.prop('disabled', true);
|
||||
App.loading.open();
|
||||
},
|
||||
complete: function() {
|
||||
me.$printerSelect.prop('disabled', false);
|
||||
me.$apiSelect.prop('disabled', false);
|
||||
},
|
||||
error: function (error) {
|
||||
App.loading.close();
|
||||
},
|
||||
success: function (data) {
|
||||
me.printercache[apiName] = data;
|
||||
me.setPrinterSelectOptions(data, me.initPrinterValue);
|
||||
App.loading.close();
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
return {
|
||||
init: me.init,
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
PrinterGoogleCloudPrint.init();
|
||||
});
|
59
composer.json
Normal file
59
composer.json
Normal file
@ -0,0 +1,59 @@
|
||||
{
|
||||
"require": {
|
||||
"php": "^7.4|^8",
|
||||
"ext-gd": "*",
|
||||
"aura/sqlquery": "2.7.1",
|
||||
"aws/aws-sdk-php": "3.175.2",
|
||||
"container-interop/container-interop": "1.2.0",
|
||||
"ezyang/htmlpurifier": "v4.13.0",
|
||||
"fiskaly/fiskaly-sdk-php": "1.2.100",
|
||||
"guzzlehttp/guzzle": "6.5.5",
|
||||
"guzzlehttp/promises": "1.4.1",
|
||||
"guzzlehttp/psr7": "1.8.1",
|
||||
"laminas/laminas-loader": "2.6.1",
|
||||
"laminas/laminas-mime": "2.7.4",
|
||||
"laminas/laminas-mail": "2.12.5",
|
||||
"laminas/laminas-stdlib": "3.2.1",
|
||||
"laminas/laminas-validator": "2.13.5",
|
||||
"league/color-extractor": "0.3.2",
|
||||
"league/flysystem": "1.0.70",
|
||||
"league/oauth1-client": "v1.9.0",
|
||||
"league/oauth2-client": "2.6.0",
|
||||
"lfkeitel/phptotp": "v1.0.0",
|
||||
"mtdowling/jmespath.php": "2.6.0",
|
||||
"nikic/fast-route": "v1.3.0",
|
||||
"phpmailer/phpmailer": "v6.3.0",
|
||||
"phpseclib/phpseclib": "2.0.30",
|
||||
"psr/container": "1.1.1",
|
||||
"psr/http-message": "1.0.1",
|
||||
"psr/log": "1.1.3",
|
||||
"rakit/validation": "v0.22.3",
|
||||
"sabre/dav": "3.2.3",
|
||||
"smarty/smarty": "v3.1.39",
|
||||
"swiss-payment-slip/swiss-payment-slip": "0.13.0 as 0.11.1",
|
||||
"swiss-payment-slip/swiss-payment-slip-fpdf": "0.6.0",
|
||||
"symfony/polyfill-intl-idn": "v1.22.1",
|
||||
"symfony/polyfill-intl-normalizer": "v1.22.1",
|
||||
"symfony/polyfill-mbstring": "v1.22.1",
|
||||
"symfony/polyfill-php72": "v1.22.1",
|
||||
"tecnickcom/tcpdf": "6.3.5",
|
||||
"y0lk/oauth1-etsy": "1.1.0"
|
||||
},
|
||||
"replace": {
|
||||
"itbz/fpdf": "*",
|
||||
"laminas/laminas-zendframework-bridge": "*"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Xentral\\": "classes"
|
||||
},
|
||||
"classmap": ["www/lib/versandarten/"]
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "7.4",
|
||||
"ext-gd": "7.4"
|
||||
},
|
||||
"optimize-autoloader": true
|
||||
}
|
||||
}
|
3104
composer.lock
generated
Normal file
3104
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
||||
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2019 Xentral ERP Software GmbH, Fuggerstrasse 11, D-86150 Augsburg
|
||||
* SPDX-FileCopyrightText: 2023 Andreas Palm
|
||||
* SPDX-FileCopyrightText: 2023-2024 Andreas Palm
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-EGPL-3.1
|
||||
*/
|
||||
@ -104,105 +104,7 @@ class Player {
|
||||
$module = 'welcome';
|
||||
$action = 'main';
|
||||
}
|
||||
|
||||
|
||||
if($this->app->erp->isIoncube() && method_exists($this->app->erp, 'IoncubeProperty')
|
||||
&& WithGUI() && !(($module=='welcome' && $action=='upgrade') || $module=='' || ($module=='welcome' && $action=='start')))
|
||||
{
|
||||
if(method_exists('erpAPI','Ioncube_getMaxUser'))
|
||||
{
|
||||
$maxuser = erpAPI::Ioncube_getMaxUser();
|
||||
}elseif(method_exists($this->app->erp, 'IoncubegetMaxUser'))
|
||||
{
|
||||
$maxuser = $this->app->erp->IoncubegetMaxUser();
|
||||
}else{
|
||||
$maxuser = 0;
|
||||
}
|
||||
if(method_exists('erpAPI','Ioncube_getMaxLightusers'))
|
||||
{
|
||||
$maxlightuser = erpAPI::Ioncube_getMaxLightusers();
|
||||
}else{
|
||||
$maxlightuser = 0;
|
||||
}
|
||||
if($maxuser)
|
||||
{
|
||||
$anzuser2 = 0;
|
||||
if($maxlightuser > 0) {
|
||||
$anzuser2 = (int)$this->app->DB->Select("SELECT count(DISTINCT u.id) FROM `user` u WHERE activ = 1 AND type = 'lightuser' ");
|
||||
$anzuser = (int)$this->app->DB->Select("SELECT count(id) FROM `user` WHERE activ = 1 AND not isnull(hwtoken) AND hwtoken <> 4") - $anzuser2;
|
||||
$anzuserzeiterfassung = (int)$this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken = 4 AND type != 'lightuser'");
|
||||
}else{
|
||||
$anzuser = $this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken <> 4 ");
|
||||
$anzuserzeiterfassung = (int)$this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken = 4");
|
||||
}
|
||||
|
||||
$maxmitarbeiterzeiterfassung = $this->app->erp->ModulVorhanden('mitarbeiterzeiterfassung')?$maxuser:0;
|
||||
if($anzuser > $maxuser
|
||||
|| (
|
||||
($anzuser + $anzuserzeiterfassung + $anzuser2) >
|
||||
$maxmitarbeiterzeiterfassung + $maxuser + $maxlightuser
|
||||
)
|
||||
|| (($anzuser + $anzuserzeiterfassung) > $maxmitarbeiterzeiterfassung + $maxuser)
|
||||
) {
|
||||
if(!(($module == 'welcome' &&
|
||||
($action=='info' || $action == 'start' || $action == 'logout' || $action == '' || $action == 'main')) ||
|
||||
($module == 'einstellungen' && ($action == 'list' || $action == '')) ||
|
||||
$module == 'benutzer'
|
||||
))
|
||||
{
|
||||
if($this->app->erp->RechteVorhanden('benutzer','list'))
|
||||
{
|
||||
$module = 'benutzer';
|
||||
$action = 'list';
|
||||
|
||||
if($maxlightuser > 0){
|
||||
$error = 'Es existieren mehr aktive Benutzer als Ihre Lizenz erlaubt: Benutzer ' . ($anzuser + $anzuser2) . ($maxlightuser > 0 ? ' (davon ' . $anzuser2 . ' Light-User)' : '') . ' von ' . ($maxuser + $maxlightuser) . ($maxlightuser > 0 ? ' (' . $maxlightuser . ' Light-User)' : '');
|
||||
}else{
|
||||
$error = 'Es existieren mehr aktive Benutzer als Ihre Lizenz erlaubt: Benutzer ' . ($anzuser + $anzuser2) . ($maxlightuser > 0 ? ' (davon ' . $anzuser2 . ' Zeiterfassungs-User)' : '') . ' von ' . ($maxuser + $anzuser2) . ($anzuser2 > 0 ? ' (' . $anzuser2 . ' Zeiterfassungs-User)' : '');
|
||||
}
|
||||
$error = '<div class="error">'.$error.'</div>';
|
||||
$this->app->Tpl->Add('MESSAGE', $error);
|
||||
$this->app->Secure->GET['msg'] = $this->app->erp->base64_url_encode($error);
|
||||
}else{
|
||||
$module = 'welcome';
|
||||
$action = 'info';
|
||||
}
|
||||
$this->app->Secure->GET['module'] = $module;
|
||||
$this->app->Secure->GET['action'] = $action;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(method_exists('erpAPI','Ioncube_Property'))
|
||||
{
|
||||
$deaktivateonexp = erpAPI::Ioncube_Property('deaktivateonexp');
|
||||
}else{
|
||||
$deaktivateonexp = $this->app->erp->IoncubeProperty('deaktivateonexp');
|
||||
}
|
||||
if($deaktivateonexp)
|
||||
{
|
||||
if(method_exists('erpAPI','Ioncube_HasExpired'))
|
||||
{
|
||||
$IoncubeHasExpired = erpAPI::Ioncube_HasExpired();
|
||||
}elseif(method_exists($this->app->erp, 'IoncubeHasExpired'))
|
||||
{
|
||||
$IoncubeHasExpired = $this->app->erp->IoncubeHasExpired();
|
||||
}else{
|
||||
$IoncubeHasExpired = false;
|
||||
}
|
||||
}else{
|
||||
$IoncubeHasExpired = false;
|
||||
}
|
||||
if($deaktivateonexp && $IoncubeHasExpired
|
||||
&& !(($module == 'welcome' && $action='logout') || ($module == 'welcome' && $action='start') || ($module == 'welcome' && $action='main'))
|
||||
)
|
||||
{
|
||||
$module = 'welcome';
|
||||
$action = 'info';
|
||||
$this->app->Secure->GET['module'] = $module;
|
||||
$this->app->Secure->GET['action'] = $action;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($action!="list" && $action!="css" && $action!="logo" && $action!="poll" && $module!="ajax" && $module!="protokoll" && $action!="thumbnail"){
|
||||
$this->app->erp->Protokoll();
|
||||
|
@ -295,8 +295,6 @@ class Acl
|
||||
/** @var EnvironmentConfig $environmentConfig */
|
||||
$environmentConfig = $this->app->Container->get('EnvironmentConfig');
|
||||
|
||||
$mailAddresses = array_merge($mailAddresses, $environmentConfig->getSystemFallbackEmailAddresses());
|
||||
|
||||
return array_unique($mailAddresses);
|
||||
}
|
||||
|
||||
@ -438,37 +436,24 @@ class Acl
|
||||
if(!empty($serverLocation)) {
|
||||
$server = rtrim($serverLocation,'/') . '?module=welcome&action=passwortvergessen&code=' . $code;
|
||||
}
|
||||
foreach(['default', 'fallback'] as $sentSetting) {
|
||||
if($sentSetting === 'fallback') {
|
||||
$db = $this->app->Conf->WFdbname;
|
||||
if(
|
||||
empty(erpAPI::Ioncube_Property('cloudemail'))
|
||||
|| $this->app->erp->firmendaten[$db]['email'] === erpAPI::Ioncube_Property('cloudemail')
|
||||
) {
|
||||
break;
|
||||
}
|
||||
$this->app->erp->firmendaten[$db]['mailanstellesmtp'] = 1;
|
||||
$this->app->erp->firmendaten[$db]['email'] = erpAPI::Ioncube_Property('cloudemail');
|
||||
foreach ($emailAddresses as $email) {
|
||||
$recipientMailAddress = $email;
|
||||
$recipientName = $name;
|
||||
if(empty($recipientMailAddress) || empty($recipientName)) {
|
||||
continue;
|
||||
}
|
||||
foreach ($emailAddresses as $email) {
|
||||
$recipientMailAddress = $email;
|
||||
$recipientName = $name;
|
||||
if(empty($recipientMailAddress) || empty($recipientName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$mailContent = str_replace(['{NAME}', '{ANREDE}', '{URL}'], [$recipientName, $anrede, $server], $mailContent);
|
||||
$mailContent = str_replace(['{NAME}', '{ANREDE}', '{URL}'], [$recipientName, $anrede, $server], $mailContent);
|
||||
|
||||
if(!$this->app->erp->isHTML($mailContent)){
|
||||
$mailContent = str_replace("\r\n", '<br>', $mailContent);
|
||||
}
|
||||
$mailSuccessfullySent = $this->app->erp->MailSend(
|
||||
$this->app->erp->GetFirmaMail(), $this->app->erp->GetFirmaAbsender(),
|
||||
$recipientMailAddress, $recipientName, $mailSubject, $mailContent, '', 0, true, '', '', true
|
||||
);
|
||||
if($mailSuccessfullySent){
|
||||
break 2;
|
||||
}
|
||||
if(!$this->app->erp->isHTML($mailContent)){
|
||||
$mailContent = str_replace("\r\n", '<br>', $mailContent);
|
||||
}
|
||||
$mailSuccessfullySent = $this->app->erp->MailSend(
|
||||
$this->app->erp->GetFirmaMail(), $this->app->erp->GetFirmaAbsender(),
|
||||
$recipientMailAddress, $recipientName, $mailSubject, $mailContent, '', 0, true, '', '', true
|
||||
);
|
||||
if($mailSuccessfullySent){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
18
vendor/autoload.php
vendored
18
vendor/autoload.php
vendored
@ -2,6 +2,24 @@
|
||||
|
||||
// autoload.php @generated by Composer
|
||||
|
||||
if (PHP_VERSION_ID < 50600) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
$err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, $err);
|
||||
} elseif (!headers_sent()) {
|
||||
echo $err;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
$err,
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee::getLoader();
|
||||
|
163
vendor/bin/jp.php
vendored
Normal file → Executable file
163
vendor/bin/jp.php
vendored
Normal file → Executable file
@ -1,74 +1,119 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
} elseif (file_exists(__DIR__ . '/../../../autoload.php')) {
|
||||
require __DIR__ . '/../../../autoload.php';
|
||||
} elseif (file_exists(__DIR__ . '/../autoload.php')) {
|
||||
require __DIR__ . '/../autoload.php';
|
||||
} else {
|
||||
throw new RuntimeException('Unable to locate autoload.php file.');
|
||||
}
|
||||
/**
|
||||
* Proxy PHP file generated by Composer
|
||||
*
|
||||
* This file includes the referenced bin path (../mtdowling/jmespath.php/bin/jp.php)
|
||||
* using a stream wrapper to prevent the shebang from being output on PHP<8
|
||||
*
|
||||
* @generated
|
||||
*/
|
||||
|
||||
use JmesPath\Env;
|
||||
use JmesPath\DebugRuntime;
|
||||
namespace Composer;
|
||||
|
||||
$description = <<<EOT
|
||||
Runs a JMESPath expression on the provided input or a test case.
|
||||
$GLOBALS['_composer_bin_dir'] = __DIR__;
|
||||
$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
|
||||
|
||||
Provide the JSON input and expression:
|
||||
echo '{}' | jp.php expression
|
||||
if (PHP_VERSION_ID < 80000) {
|
||||
if (!class_exists('Composer\BinProxyWrapper')) {
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class BinProxyWrapper
|
||||
{
|
||||
private $handle;
|
||||
private $position;
|
||||
private $realpath;
|
||||
|
||||
Or provide the path to a compliance script, a suite, and test case number:
|
||||
jp.php --script path_to_script --suite test_suite_number --case test_case_number [expression]
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
// get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
|
||||
$opened_path = substr($path, 17);
|
||||
$this->realpath = realpath($opened_path) ?: $opened_path;
|
||||
$opened_path = $this->realpath;
|
||||
$this->handle = fopen($this->realpath, $mode);
|
||||
$this->position = 0;
|
||||
|
||||
EOT;
|
||||
return (bool) $this->handle;
|
||||
}
|
||||
|
||||
$args = [];
|
||||
$currentKey = null;
|
||||
for ($i = 1, $total = count($argv); $i < $total; $i++) {
|
||||
if ($i % 2) {
|
||||
if (substr($argv[$i], 0, 2) == '--') {
|
||||
$currentKey = str_replace('--', '', $argv[$i]);
|
||||
} else {
|
||||
$currentKey = trim($argv[$i]);
|
||||
}
|
||||
} else {
|
||||
$args[$currentKey] = $argv[$i];
|
||||
$currentKey = null;
|
||||
}
|
||||
}
|
||||
public function stream_read($count)
|
||||
{
|
||||
$data = fread($this->handle, $count);
|
||||
|
||||
$expression = $currentKey;
|
||||
if ($this->position === 0) {
|
||||
$data = preg_replace('{^#!.*\r?\n}', '', $data);
|
||||
}
|
||||
|
||||
if (isset($args['file']) || isset($args['suite']) || isset($args['case'])) {
|
||||
if (!isset($args['file']) || !isset($args['suite']) || !isset($args['case'])) {
|
||||
die($description);
|
||||
}
|
||||
// Manually run a compliance test
|
||||
$path = realpath($args['file']);
|
||||
file_exists($path) or die('File not found at ' . $path);
|
||||
$json = json_decode(file_get_contents($path), true);
|
||||
$set = $json[$args['suite']];
|
||||
$data = $set['given'];
|
||||
if (!isset($expression)) {
|
||||
$expression = $set['cases'][$args['case']]['expression'];
|
||||
echo "Expects\n=======\n";
|
||||
if (isset($set['cases'][$args['case']]['result'])) {
|
||||
echo json_encode($set['cases'][$args['case']]['result'], JSON_PRETTY_PRINT) . "\n\n";
|
||||
} elseif (isset($set['cases'][$args['case']]['error'])) {
|
||||
echo "{$set['cases'][$argv['case']]['error']} error\n\n";
|
||||
} else {
|
||||
echo "NULL\n\n";
|
||||
$this->position += strlen($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function stream_cast($castAs)
|
||||
{
|
||||
return $this->handle;
|
||||
}
|
||||
|
||||
public function stream_close()
|
||||
{
|
||||
fclose($this->handle);
|
||||
}
|
||||
|
||||
public function stream_lock($operation)
|
||||
{
|
||||
return $operation ? flock($this->handle, $operation) : true;
|
||||
}
|
||||
|
||||
public function stream_seek($offset, $whence)
|
||||
{
|
||||
if (0 === fseek($this->handle, $offset, $whence)) {
|
||||
$this->position = ftell($this->handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function stream_tell()
|
||||
{
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
public function stream_eof()
|
||||
{
|
||||
return feof($this->handle);
|
||||
}
|
||||
|
||||
public function stream_stat()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
|
||||
public function stream_set_option($option, $arg1, $arg2)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
$path = substr($path, 17);
|
||||
if (file_exists($path)) {
|
||||
return stat($path);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif (isset($expression)) {
|
||||
// Pass in an expression and STDIN as a standalone argument
|
||||
$data = json_decode(stream_get_contents(STDIN), true);
|
||||
} else {
|
||||
die($description);
|
||||
|
||||
if (
|
||||
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|
||||
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
|
||||
) {
|
||||
return include("phpvfscomposer://" . __DIR__ . '/..'.'/mtdowling/jmespath.php/bin/jp.php');
|
||||
}
|
||||
}
|
||||
|
||||
$runtime = new DebugRuntime(Env::createRuntime());
|
||||
$runtime($expression, $data);
|
||||
return include __DIR__ . '/..'.'/mtdowling/jmespath.php/bin/jp.php';
|
||||
|
204
vendor/composer/ClassLoader.php
vendored
204
vendor/composer/ClassLoader.php
vendored
@ -37,57 +37,126 @@ namespace Composer\Autoload;
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
* @see http://www.php-fig.org/psr/psr-0/
|
||||
* @see http://www.php-fig.org/psr/psr-4/
|
||||
* @see https://www.php-fig.org/psr/psr-0/
|
||||
* @see https://www.php-fig.org/psr/psr-4/
|
||||
*/
|
||||
class ClassLoader
|
||||
{
|
||||
/** @var \Closure(string):void */
|
||||
private static $includeFile;
|
||||
|
||||
/** @var string|null */
|
||||
private $vendorDir;
|
||||
|
||||
// PSR-4
|
||||
/**
|
||||
* @var array<string, array<string, int>>
|
||||
*/
|
||||
private $prefixLengthsPsr4 = array();
|
||||
/**
|
||||
* @var array<string, list<string>>
|
||||
*/
|
||||
private $prefixDirsPsr4 = array();
|
||||
/**
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr4 = array();
|
||||
|
||||
// PSR-0
|
||||
/**
|
||||
* List of PSR-0 prefixes
|
||||
*
|
||||
* Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
|
||||
*
|
||||
* @var array<string, array<string, list<string>>>
|
||||
*/
|
||||
private $prefixesPsr0 = array();
|
||||
/**
|
||||
* @var list<string>
|
||||
*/
|
||||
private $fallbackDirsPsr0 = array();
|
||||
|
||||
/** @var bool */
|
||||
private $useIncludePath = false;
|
||||
|
||||
/**
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $classMap = array();
|
||||
|
||||
/** @var bool */
|
||||
private $classMapAuthoritative = false;
|
||||
|
||||
/**
|
||||
* @var array<string, bool>
|
||||
*/
|
||||
private $missingClasses = array();
|
||||
|
||||
/** @var string|null */
|
||||
private $apcuPrefix;
|
||||
|
||||
/**
|
||||
* @var array<string, self>
|
||||
*/
|
||||
private static $registeredLoaders = array();
|
||||
|
||||
/**
|
||||
* @param string|null $vendorDir
|
||||
*/
|
||||
public function __construct($vendorDir = null)
|
||||
{
|
||||
$this->vendorDir = $vendorDir;
|
||||
self::initializeIncludeClosure();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixes()
|
||||
{
|
||||
if (!empty($this->prefixesPsr0)) {
|
||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
||||
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, list<string>>
|
||||
*/
|
||||
public function getPrefixesPsr4()
|
||||
{
|
||||
return $this->prefixDirsPsr4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirs()
|
||||
{
|
||||
return $this->fallbackDirsPsr0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
public function getFallbackDirsPsr4()
|
||||
{
|
||||
return $this->fallbackDirsPsr4;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, string> Array of classname => path
|
||||
*/
|
||||
public function getClassMap()
|
||||
{
|
||||
return $this->classMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $classMap Class to filename map
|
||||
* @param array<string, string> $classMap Class to filename map
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addClassMap(array $classMap)
|
||||
{
|
||||
@ -102,22 +171,25 @@ class ClassLoader
|
||||
* Registers a set of PSR-0 directories for a given prefix, either
|
||||
* appending or prepending to the ones previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 root directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->fallbackDirsPsr0
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr0 = array_merge(
|
||||
$this->fallbackDirsPsr0,
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
|
||||
@ -126,19 +198,19 @@ class ClassLoader
|
||||
|
||||
$first = $prefix[0];
|
||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
||||
$this->prefixesPsr0[$first][$prefix] = $paths;
|
||||
|
||||
return;
|
||||
}
|
||||
if ($prepend) {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->prefixesPsr0[$first][$prefix]
|
||||
);
|
||||
} else {
|
||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
||||
$this->prefixesPsr0[$first][$prefix],
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -147,25 +219,28 @@ class ClassLoader
|
||||
* Registers a set of PSR-4 directories for a given namespace, either
|
||||
* appending or prepending to the ones previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
* @param bool $prepend Whether to prepend the directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addPsr4($prefix, $paths, $prepend = false)
|
||||
{
|
||||
$paths = (array) $paths;
|
||||
if (!$prefix) {
|
||||
// Register directories for the root namespace.
|
||||
if ($prepend) {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->fallbackDirsPsr4
|
||||
);
|
||||
} else {
|
||||
$this->fallbackDirsPsr4 = array_merge(
|
||||
$this->fallbackDirsPsr4,
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
||||
@ -175,18 +250,18 @@ class ClassLoader
|
||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
||||
}
|
||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
||||
$this->prefixDirsPsr4[$prefix] = $paths;
|
||||
} elseif ($prepend) {
|
||||
// Prepend directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$paths,
|
||||
$this->prefixDirsPsr4[$prefix]
|
||||
);
|
||||
} else {
|
||||
// Append directories for an already registered namespace.
|
||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
||||
$this->prefixDirsPsr4[$prefix],
|
||||
(array) $paths
|
||||
$paths
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -195,8 +270,10 @@ class ClassLoader
|
||||
* Registers a set of PSR-0 directories for a given prefix,
|
||||
* replacing any others previously set for this prefix.
|
||||
*
|
||||
* @param string $prefix The prefix
|
||||
* @param array|string $paths The PSR-0 base directories
|
||||
* @param string $prefix The prefix
|
||||
* @param list<string>|string $paths The PSR-0 base directories
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function set($prefix, $paths)
|
||||
{
|
||||
@ -211,10 +288,12 @@ class ClassLoader
|
||||
* Registers a set of PSR-4 directories for a given namespace,
|
||||
* replacing any others previously set for this namespace.
|
||||
*
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param array|string $paths The PSR-4 base directories
|
||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
||||
* @param list<string>|string $paths The PSR-4 base directories
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setPsr4($prefix, $paths)
|
||||
{
|
||||
@ -234,6 +313,8 @@ class ClassLoader
|
||||
* Turns on searching the include path for class files.
|
||||
*
|
||||
* @param bool $useIncludePath
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUseIncludePath($useIncludePath)
|
||||
{
|
||||
@ -256,6 +337,8 @@ class ClassLoader
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
@ -276,6 +359,8 @@ class ClassLoader
|
||||
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
||||
*
|
||||
* @param string|null $apcuPrefix
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setApcuPrefix($apcuPrefix)
|
||||
{
|
||||
@ -296,33 +381,55 @@ class ClassLoader
|
||||
* Registers this instance as an autoloader.
|
||||
*
|
||||
* @param bool $prepend Whether to prepend the autoloader or not
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register($prepend = false)
|
||||
{
|
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
||||
|
||||
if (null === $this->vendorDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
||||
} else {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
self::$registeredLoaders[$this->vendorDir] = $this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters this instance as an autoloader.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function unregister()
|
||||
{
|
||||
spl_autoload_unregister(array($this, 'loadClass'));
|
||||
|
||||
if (null !== $this->vendorDir) {
|
||||
unset(self::$registeredLoaders[$this->vendorDir]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the given class or interface.
|
||||
*
|
||||
* @param string $class The name of the class
|
||||
* @return bool|null True if loaded, null otherwise
|
||||
* @return true|null True if loaded, null otherwise
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
includeFile($file);
|
||||
$includeFile = self::$includeFile;
|
||||
$includeFile($file);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -367,6 +474,21 @@ class ClassLoader
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently registered loaders keyed by their corresponding vendor directories.
|
||||
*
|
||||
* @return array<string, self>
|
||||
*/
|
||||
public static function getRegisteredLoaders()
|
||||
{
|
||||
return self::$registeredLoaders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
* @param string $ext
|
||||
* @return string|false
|
||||
*/
|
||||
private function findFileWithExtension($class, $ext)
|
||||
{
|
||||
// PSR-4 lookup
|
||||
@ -432,14 +554,26 @@ class ClassLoader
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*/
|
||||
function includeFile($file)
|
||||
{
|
||||
include $file;
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
private static function initializeIncludeClosure()
|
||||
{
|
||||
if (self::$includeFile !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope isolated include.
|
||||
*
|
||||
* Prevents access to $this/self from included files.
|
||||
*
|
||||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
self::$includeFile = \Closure::bind(static function($file) {
|
||||
include $file;
|
||||
}, null, null);
|
||||
}
|
||||
}
|
||||
|
359
vendor/composer/InstalledVersions.php
vendored
Normal file
359
vendor/composer/InstalledVersions.php
vendored
Normal file
@ -0,0 +1,359 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require its presence, you can require `composer-runtime-api ^2.0`
|
||||
*
|
||||
* @final
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
/**
|
||||
* @var mixed[]|null
|
||||
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
|
||||
*/
|
||||
private static $installed;
|
||||
|
||||
/**
|
||||
* @var bool|null
|
||||
*/
|
||||
private static $canGetVendors;
|
||||
|
||||
/**
|
||||
* @var array[]
|
||||
* @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints((string) $constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require $vendorDir.'/composer/installed.php';
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = $required;
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
|
||||
$required = require __DIR__ . '/installed.php';
|
||||
self::$installed = $required;
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
if (self::$installed !== array()) {
|
||||
$installed[] = self::$installed;
|
||||
}
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
75
vendor/composer/autoload_classmap.php
vendored
75
vendor/composer/autoload_classmap.php
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
@ -812,6 +812,7 @@ return array(
|
||||
'Aws\\kendra\\kendraClient' => $vendorDir . '/aws/aws-sdk-php/src/kendra/kendraClient.php',
|
||||
'Aws\\signer\\Exception\\signerException' => $vendorDir . '/aws/aws-sdk-php/src/signer/Exception/signerException.php',
|
||||
'Aws\\signer\\signerClient' => $vendorDir . '/aws/aws-sdk-php/src/signer/signerClient.php',
|
||||
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
||||
'Datto\\JsonRpc\\Client' => $vendorDir . '/datto/json-rpc/src/Client.php',
|
||||
'Datto\\JsonRpc\\Evaluator' => $vendorDir . '/datto/json-rpc/src/Evaluator.php',
|
||||
@ -1116,9 +1117,6 @@ return array(
|
||||
'HTMLPurifier_Printer' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php',
|
||||
'HTMLPurifier_Printer_CSSDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php',
|
||||
'HTMLPurifier_Printer_ConfigForm' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_NullDecorator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_bool' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_default' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_HTMLDefinition' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php',
|
||||
'HTMLPurifier_PropertyList' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php',
|
||||
'HTMLPurifier_PropertyListIterator' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php',
|
||||
@ -2190,6 +2188,57 @@ return array(
|
||||
'TrueBV\\Exception\\LabelOutOfBoundsException' => $vendorDir . '/true/punycode/src/Exception/LabelOutOfBoundsException.php',
|
||||
'TrueBV\\Exception\\OutOfBoundsException' => $vendorDir . '/true/punycode/src/Exception/OutOfBoundsException.php',
|
||||
'TrueBV\\Punycode' => $vendorDir . '/true/punycode/src/Punycode.php',
|
||||
'Versandart_dhl' => $baseDir . '/www/lib/versandarten/dhl.php',
|
||||
'Versandart_sendcloud' => $baseDir . '/www/lib/versandarten/sendcloud.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Bank' => $baseDir . '/classes/Carrier/Dhl/Data/Bank.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Communication' => $baseDir . '/classes/Carrier/Dhl/Data/Communication.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Contact' => $baseDir . '/classes/Carrier/Dhl/Data/Contact.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Country' => $baseDir . '/classes/Carrier/Dhl/Data/Country.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderRequest' => $baseDir . '/classes/Carrier/Dhl/Data/CreateShipmentOrderRequest.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderResponse' => $baseDir . '/classes/Carrier/Dhl/Data/CreateShipmentOrderResponse.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreationState' => $baseDir . '/classes/Carrier/Dhl/Data/CreationState.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Customer' => $baseDir . '/classes/Carrier/Dhl/Data/Customer.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderRequest' => $baseDir . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderRequest.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderResponse' => $baseDir . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderResponse.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeletionState' => $baseDir . '/classes/Carrier/Dhl/Data/DeletionState.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeliveryAddress' => $baseDir . '/classes/Carrier/Dhl/Data/DeliveryAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Dimension' => $baseDir . '/classes/Carrier/Dhl/Data/Dimension.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ExportDocPosition' => $baseDir . '/classes/Carrier/Dhl/Data/ExportDocPosition.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ExportDocument' => $baseDir . '/classes/Carrier/Dhl/Data/ExportDocument.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\LabelData' => $baseDir . '/classes/Carrier/Dhl/Data/LabelData.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Name' => $baseDir . '/classes/Carrier/Dhl/Data/Name.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\NativeAddress' => $baseDir . '/classes/Carrier/Dhl/Data/NativeAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\NativeAddressNew' => $baseDir . '/classes/Carrier/Dhl/Data/NativeAddressNew.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\PackStation' => $baseDir . '/classes/Carrier/Dhl/Data/PackStation.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Postfiliale' => $baseDir . '/classes/Carrier/Dhl/Data/Postfiliale.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Receiver' => $baseDir . '/classes/Carrier/Dhl/Data/Receiver.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ReceiverNativeAddress' => $baseDir . '/classes/Carrier/Dhl/Data/ReceiverNativeAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Shipment' => $baseDir . '/classes/Carrier/Dhl/Data/Shipment.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentDetails' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentDetails.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentItem' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentItem.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentNotification' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentNotification.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentOrder' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentOrder.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentService' => $baseDir . '/classes/Carrier/Dhl/Data/ShipmentService.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Shipper' => $baseDir . '/classes/Carrier/Dhl/Data/Shipper.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Status' => $baseDir . '/classes/Carrier/Dhl/Data/Status.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\StatusElement' => $baseDir . '/classes/Carrier/Dhl/Data/StatusElement.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Statusinformation' => $baseDir . '/classes/Carrier/Dhl/Data/Statusinformation.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Version' => $baseDir . '/classes/Carrier/Dhl/Data/Version.php',
|
||||
'Xentral\\Carrier\\Dhl\\DhlApi' => $baseDir . '/classes/Carrier/Dhl/DhlApi.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Document' => $baseDir . '/classes/Carrier/SendCloud/Data/Document.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Label' => $baseDir . '/classes/Carrier/SendCloud/Data/Label.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelBase' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelBase.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreation' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelCreation.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreationError' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelCreationError.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelItem' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelItem.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelResponse' => $baseDir . '/classes/Carrier/SendCloud/Data/ParcelResponse.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\SenderAddress' => $baseDir . '/classes/Carrier/SendCloud/Data/SenderAddress.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Shipment' => $baseDir . '/classes/Carrier/SendCloud/Data/Shipment.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ShippingMethod' => $baseDir . '/classes/Carrier/SendCloud/Data/ShippingMethod.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ShippingProduct' => $baseDir . '/classes/Carrier/SendCloud/Data/ShippingProduct.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Status' => $baseDir . '/classes/Carrier/SendCloud/Data/Status.php',
|
||||
'Xentral\\Carrier\\SendCloud\\SendCloudApi' => $baseDir . '/classes/Carrier/SendCloud/SendCloudApi.php',
|
||||
'Xentral\\Carrier\\SendCloud\\SendcloudApiException' => $baseDir . '/classes/Carrier/SendCloud/SendcloudApiException.php',
|
||||
'Xentral\\Components\\Backup\\Adapter\\AdapterInterface' => $baseDir . '/classes/Components/Backup/Adapter/AdapterInterface.php',
|
||||
'Xentral\\Components\\Backup\\Adapter\\ExecAdapter' => $baseDir . '/classes/Components/Backup/Adapter/ExecAdapter.php',
|
||||
'Xentral\\Components\\Backup\\Bootstrap' => $baseDir . '/classes/Components/Backup/Bootstrap.php',
|
||||
@ -2726,6 +2775,7 @@ return array(
|
||||
'Xentral\\Modules\\Article\\Exception\\InvalidArgumentException' => $baseDir . '/classes/Modules/Article/Exception/InvalidArgumentException.php',
|
||||
'Xentral\\Modules\\Article\\Exception\\SellingPriceNotFoundException' => $baseDir . '/classes/Modules/Article/Exception/SellingPriceNotFoundException.php',
|
||||
'Xentral\\Modules\\Article\\Gateway\\ArticleGateway' => $baseDir . '/classes/Modules/Article/Gateway/ArticleGateway.php',
|
||||
'Xentral\\Modules\\Article\\Service\\ArticleService' => $baseDir . '/classes/Modules/Article/Service/ArticleService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\CurrencyConversionService' => $baseDir . '/classes/Modules/Article/Service/CurrencyConversionService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\PurchasePriceService' => $baseDir . '/classes/Modules/Article/Service/PurchasePriceService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\SellingPriceService' => $baseDir . '/classes/Modules/Article/Service/SellingPriceService.php',
|
||||
@ -2832,10 +2882,7 @@ return array(
|
||||
'Xentral\\Modules\\Datanorm\\Service\\DatanormIntermediateService' => $baseDir . '/classes/Modules/Datanorm/Service/DatanormIntermediateService.php',
|
||||
'Xentral\\Modules\\Datanorm\\Service\\DatanormReader' => $baseDir . '/classes/Modules/Datanorm/Service/DatanormReader.php',
|
||||
'Xentral\\Modules\\Datanorm\\Wrapper\\AddressWrapper' => $baseDir . '/classes/Modules/Datanorm/Wrapper/AddressWrapper.php',
|
||||
'Xentral\\Modules\\DatevApi\\Bootstrap' => $baseDir . '/classes/Modules/DatevApi/Bootstrap.php',
|
||||
'Xentral\\Modules\\DatevApi\\DataTable\\DatevExportDataTable' => $baseDir . '/classes/Modules/DatevApi/DataTable/DatevExportDataTable.php',
|
||||
'Xentral\\Modules\\DatevApi\\DatevApiService' => $baseDir . '/classes/Modules/DatevApi/DatevApiService.php',
|
||||
'Xentral\\Modules\\DatevApi\\DatevZipStream' => $baseDir . '/classes/Modules/DatevApi/DatevZipStream.php',
|
||||
'Xentral\\Modules\\DemoExporter\\Bootstrap' => $baseDir . '/classes/Modules/DemoExporter/Bootstrap.php',
|
||||
'Xentral\\Modules\\DemoExporter\\DemoExporterCleanerService' => $baseDir . '/classes/Modules/DemoExporter/DemoExporterCleanerService.php',
|
||||
'Xentral\\Modules\\DemoExporter\\DemoExporterDateiService' => $baseDir . '/classes/Modules/DemoExporter/DemoExporterDateiService.php',
|
||||
@ -3007,7 +3054,6 @@ return array(
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBInterface' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBInterface.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBService' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBService.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyConfig' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyConfig.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyDSFinVKApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyDSFinVKApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyEReceiptApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyEReceiptApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyKassenSichVApi' => $baseDir . '/classes/Modules/FiskalyApi/Service/FiskalyKassenSichVApi.php',
|
||||
@ -3188,6 +3234,15 @@ return array(
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsGateway' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsGateway.php',
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsService' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsService.php',
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsValidator' => $baseDir . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsValidator.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Bootstrap' => $baseDir . '/classes/Modules/MatrixProduct/Bootstrap.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Group' => $baseDir . '/classes/Modules/MatrixProduct/Data/Group.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Option' => $baseDir . '/classes/Modules/MatrixProduct/Data/Option.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Translation' => $baseDir . '/classes/Modules/MatrixProduct/Data/Translation.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\MatrixProductGateway' => $baseDir . '/classes/Modules/MatrixProduct/MatrixProductGateway.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\MatrixProductService' => $baseDir . '/classes/Modules/MatrixProduct/MatrixProductService.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatus' => $baseDir . '/classes/Modules/Onlineshop/Data/OrderStatus.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatusUpdateRequest' => $baseDir . '/classes/Modules/Onlineshop/Data/OrderStatusUpdateRequest.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\Shipment' => $baseDir . '/classes/Modules/Onlineshop/Data/Shipment.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorOrderStatusUpdateResponse' => $baseDir . '/classes/Modules/Onlineshop/Data/ShopConnectorOrderStatusUpdateResponse.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorResponseInterface' => $baseDir . '/classes/Modules/Onlineshop/Data/ShopConnectorResponseInterface.php',
|
||||
'Xentral\\Modules\\PartialDelivery\\Bootstrap' => $baseDir . '/classes/Modules/PartialDelivery/Bootstrap.php',
|
||||
@ -3345,6 +3400,9 @@ return array(
|
||||
'Xentral\\Modules\\ScanArticle\\Wrapper\\PriceWrapper' => $baseDir . '/classes/Modules/ScanArticle/Wrapper/PriceWrapper.php',
|
||||
'Xentral\\Modules\\ScanArticle\\Wrapper\\SavePositionWrapper' => $baseDir . '/classes/Modules/ScanArticle/Wrapper/SavePositionWrapper.php',
|
||||
'Xentral\\Modules\\Setting\\Bootstrap' => $baseDir . '/classes/Modules/Setting/Bootstrap.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\CreateShipmentResult' => $baseDir . '/classes/Modules/ShippingMethod/Model/CreateShipmentResult.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\CustomsInfo' => $baseDir . '/classes/Modules/ShippingMethod/Model/CustomsInfo.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\Product' => $baseDir . '/classes/Modules/ShippingMethod/Model/Product.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Bootstrap' => $baseDir . '/classes/Modules/ShippingTaxSplit/Bootstrap.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\InvalidArgumentException' => $baseDir . '/classes/Modules/ShippingTaxSplit/Exception/InvalidArgumentException.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\ShippingTaxSplitExceptionInterface' => $baseDir . '/classes/Modules/ShippingTaxSplit/Exception/ShippingTaxSplitExceptionInterface.php',
|
||||
@ -3404,6 +3462,7 @@ return array(
|
||||
'Xentral\\Modules\\SubscriptionCycle\\Service\\SubscriptionCycleJobService' => $baseDir . '/classes/Modules/SubscriptionCycle/Service/SubscriptionCycleJobService.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleCacheFiller' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionCycleCacheFiller.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleModuleInterface' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionCycleModuleInterface.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModule' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionModule.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModuleInterface' => $baseDir . '/classes/Modules/SubscriptionCycle/SubscriptionModuleInterface.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\Wrapper\\BusinessLetterWrapper' => $baseDir . '/classes/Modules/SubscriptionCycle/Wrapper/BusinessLetterWrapper.php',
|
||||
'Xentral\\Modules\\SuperSearch\\Bootstrap' => $baseDir . '/classes/Modules/SuperSearch/Bootstrap.php',
|
||||
|
12
vendor/composer/autoload_files.php
vendored
12
vendor/composer/autoload_files.php
vendored
@ -2,24 +2,24 @@
|
||||
|
||||
// autoload_files.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php',
|
||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php',
|
||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
|
||||
'8a9dc1de0ca7e01f3e08231539562f61' => $vendorDir . '/aws/aws-sdk-php/src/functions.php',
|
||||
|
2
vendor/composer/autoload_namespaces.php
vendored
2
vendor/composer/autoload_namespaces.php
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
|
2
vendor/composer/autoload_psr4.php
vendored
2
vendor/composer/autoload_psr4.php
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$vendorDir = dirname(__DIR__);
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
|
53
vendor/composer/autoload_real.php
vendored
53
vendor/composer/autoload_real.php
vendored
@ -22,52 +22,29 @@ class ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
require __DIR__ . '/platform_check.php';
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit0c49a81c1214ef2f7493c6ce921b17ee', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require_once __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->set($namespace, $path);
|
||||
}
|
||||
|
||||
$map = require __DIR__ . '/autoload_psr4.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->setPsr4($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
}
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::getInitializer($loader));
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire0c49a81c1214ef2f7493c6ce921b17ee($fileIdentifier, $file);
|
||||
$filesToLoad = \Composer\Autoload\ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee::$files;
|
||||
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
||||
require $file;
|
||||
}
|
||||
}, null, null);
|
||||
foreach ($filesToLoad as $fileIdentifier => $file) {
|
||||
$requireFile($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequire0c49a81c1214ef2f7493c6ce921b17ee($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
}
|
||||
}
|
||||
|
83
vendor/composer/autoload_static.php
vendored
83
vendor/composer/autoload_static.php
vendored
@ -9,18 +9,18 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
public static $files = array (
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
|
||||
'25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
|
||||
'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
|
||||
'2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php',
|
||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php',
|
||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'b067bc7112e384b61c701452d53a14a8' => __DIR__ . '/..' . '/mtdowling/jmespath.php/src/JmesPath.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
|
||||
'8a9dc1de0ca7e01f3e08231539562f61' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/functions.php',
|
||||
@ -1131,6 +1131,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Aws\\kendra\\kendraClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/kendra/kendraClient.php',
|
||||
'Aws\\signer\\Exception\\signerException' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/signer/Exception/signerException.php',
|
||||
'Aws\\signer\\signerClient' => __DIR__ . '/..' . '/aws/aws-sdk-php/src/signer/signerClient.php',
|
||||
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||
'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
||||
'Datto\\JsonRpc\\Client' => __DIR__ . '/..' . '/datto/json-rpc/src/Client.php',
|
||||
'Datto\\JsonRpc\\Evaluator' => __DIR__ . '/..' . '/datto/json-rpc/src/Evaluator.php',
|
||||
@ -1435,9 +1436,6 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'HTMLPurifier_Printer' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer.php',
|
||||
'HTMLPurifier_Printer_CSSDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/CSSDefinition.php',
|
||||
'HTMLPurifier_Printer_ConfigForm' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_NullDecorator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_bool' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_ConfigForm_default' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php',
|
||||
'HTMLPurifier_Printer_HTMLDefinition' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Printer/HTMLDefinition.php',
|
||||
'HTMLPurifier_PropertyList' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyList.php',
|
||||
'HTMLPurifier_PropertyListIterator' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/PropertyListIterator.php',
|
||||
@ -2509,6 +2507,57 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'TrueBV\\Exception\\LabelOutOfBoundsException' => __DIR__ . '/..' . '/true/punycode/src/Exception/LabelOutOfBoundsException.php',
|
||||
'TrueBV\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/true/punycode/src/Exception/OutOfBoundsException.php',
|
||||
'TrueBV\\Punycode' => __DIR__ . '/..' . '/true/punycode/src/Punycode.php',
|
||||
'Versandart_dhl' => __DIR__ . '/../..' . '/www/lib/versandarten/dhl.php',
|
||||
'Versandart_sendcloud' => __DIR__ . '/../..' . '/www/lib/versandarten/sendcloud.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Bank' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Bank.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Communication' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Communication.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Contact' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Contact.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Country' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Country.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderRequest' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreateShipmentOrderRequest.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreateShipmentOrderResponse' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreateShipmentOrderResponse.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\CreationState' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/CreationState.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Customer' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Customer.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderRequest' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderRequest.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeleteShipmentOrderResponse' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeleteShipmentOrderResponse.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeletionState' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeletionState.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\DeliveryAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/DeliveryAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Dimension' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Dimension.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ExportDocPosition' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ExportDocPosition.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ExportDocument' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ExportDocument.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\LabelData' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/LabelData.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Name' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Name.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\NativeAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/NativeAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\NativeAddressNew' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/NativeAddressNew.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\PackStation' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/PackStation.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Postfiliale' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Postfiliale.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Receiver' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Receiver.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ReceiverNativeAddress' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ReceiverNativeAddress.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Shipment.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentDetails' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentDetails.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentItem' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentItem.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentNotification' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentNotification.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentOrder' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentOrder.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\ShipmentService' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/ShipmentService.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Shipper' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Shipper.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Status' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Status.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\StatusElement' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/StatusElement.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Statusinformation' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Statusinformation.php',
|
||||
'Xentral\\Carrier\\Dhl\\Data\\Version' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/Data/Version.php',
|
||||
'Xentral\\Carrier\\Dhl\\DhlApi' => __DIR__ . '/../..' . '/classes/Carrier/Dhl/DhlApi.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Document' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Document.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Label' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Label.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelBase' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelBase.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreation' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelCreation.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelCreationError' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelCreationError.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelItem' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelItem.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ParcelResponse' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ParcelResponse.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\SenderAddress' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/SenderAddress.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Shipment.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ShippingMethod' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ShippingMethod.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\ShippingProduct' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/ShippingProduct.php',
|
||||
'Xentral\\Carrier\\SendCloud\\Data\\Status' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/Data/Status.php',
|
||||
'Xentral\\Carrier\\SendCloud\\SendCloudApi' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/SendCloudApi.php',
|
||||
'Xentral\\Carrier\\SendCloud\\SendcloudApiException' => __DIR__ . '/../..' . '/classes/Carrier/SendCloud/SendcloudApiException.php',
|
||||
'Xentral\\Components\\Backup\\Adapter\\AdapterInterface' => __DIR__ . '/../..' . '/classes/Components/Backup/Adapter/AdapterInterface.php',
|
||||
'Xentral\\Components\\Backup\\Adapter\\ExecAdapter' => __DIR__ . '/../..' . '/classes/Components/Backup/Adapter/ExecAdapter.php',
|
||||
'Xentral\\Components\\Backup\\Bootstrap' => __DIR__ . '/../..' . '/classes/Components/Backup/Bootstrap.php',
|
||||
@ -3045,6 +3094,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\Article\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/classes/Modules/Article/Exception/InvalidArgumentException.php',
|
||||
'Xentral\\Modules\\Article\\Exception\\SellingPriceNotFoundException' => __DIR__ . '/../..' . '/classes/Modules/Article/Exception/SellingPriceNotFoundException.php',
|
||||
'Xentral\\Modules\\Article\\Gateway\\ArticleGateway' => __DIR__ . '/../..' . '/classes/Modules/Article/Gateway/ArticleGateway.php',
|
||||
'Xentral\\Modules\\Article\\Service\\ArticleService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/ArticleService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\CurrencyConversionService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/CurrencyConversionService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\PurchasePriceService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/PurchasePriceService.php',
|
||||
'Xentral\\Modules\\Article\\Service\\SellingPriceService' => __DIR__ . '/../..' . '/classes/Modules/Article/Service/SellingPriceService.php',
|
||||
@ -3151,10 +3201,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\Datanorm\\Service\\DatanormIntermediateService' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Service/DatanormIntermediateService.php',
|
||||
'Xentral\\Modules\\Datanorm\\Service\\DatanormReader' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Service/DatanormReader.php',
|
||||
'Xentral\\Modules\\Datanorm\\Wrapper\\AddressWrapper' => __DIR__ . '/../..' . '/classes/Modules/Datanorm/Wrapper/AddressWrapper.php',
|
||||
'Xentral\\Modules\\DatevApi\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/Bootstrap.php',
|
||||
'Xentral\\Modules\\DatevApi\\DataTable\\DatevExportDataTable' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DataTable/DatevExportDataTable.php',
|
||||
'Xentral\\Modules\\DatevApi\\DatevApiService' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DatevApiService.php',
|
||||
'Xentral\\Modules\\DatevApi\\DatevZipStream' => __DIR__ . '/../..' . '/classes/Modules/DatevApi/DatevZipStream.php',
|
||||
'Xentral\\Modules\\DemoExporter\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/Bootstrap.php',
|
||||
'Xentral\\Modules\\DemoExporter\\DemoExporterCleanerService' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/DemoExporterCleanerService.php',
|
||||
'Xentral\\Modules\\DemoExporter\\DemoExporterDateiService' => __DIR__ . '/../..' . '/classes/Modules/DemoExporter/DemoExporterDateiService.php',
|
||||
@ -3326,7 +3373,6 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBInterface' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBInterface.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyCashPointClosingDBService' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyCashPointClosingDBService.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyConfig' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyConfig.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyDSFinVKApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyDSFinVKApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyEReceiptApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyEReceiptApi.php',
|
||||
'Xentral\\Modules\\FiskalyApi\\Service\\FiskalyKassenSichVApi' => __DIR__ . '/../..' . '/classes/Modules/FiskalyApi/Service/FiskalyKassenSichVApi.php',
|
||||
@ -3507,6 +3553,15 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsGateway' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsGateway.php',
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsService' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsService.php',
|
||||
'Xentral\\Modules\\MandatoryFields\\Service\\MandatoryFieldsValidator' => __DIR__ . '/../..' . '/classes/Modules/MandatoryFields/Service/MandatoryFieldsValidator.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Bootstrap.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Group' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Group.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Option' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Option.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\Data\\Translation' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/Data/Translation.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\MatrixProductGateway' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/MatrixProductGateway.php',
|
||||
'Xentral\\Modules\\MatrixProduct\\MatrixProductService' => __DIR__ . '/../..' . '/classes/Modules/MatrixProduct/MatrixProductService.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatus' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/OrderStatus.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\OrderStatusUpdateRequest' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/OrderStatusUpdateRequest.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\Shipment' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/Shipment.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorOrderStatusUpdateResponse' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/ShopConnectorOrderStatusUpdateResponse.php',
|
||||
'Xentral\\Modules\\Onlineshop\\Data\\ShopConnectorResponseInterface' => __DIR__ . '/../..' . '/classes/Modules/Onlineshop/Data/ShopConnectorResponseInterface.php',
|
||||
'Xentral\\Modules\\PartialDelivery\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/PartialDelivery/Bootstrap.php',
|
||||
@ -3664,6 +3719,9 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\ScanArticle\\Wrapper\\PriceWrapper' => __DIR__ . '/../..' . '/classes/Modules/ScanArticle/Wrapper/PriceWrapper.php',
|
||||
'Xentral\\Modules\\ScanArticle\\Wrapper\\SavePositionWrapper' => __DIR__ . '/../..' . '/classes/Modules/ScanArticle/Wrapper/SavePositionWrapper.php',
|
||||
'Xentral\\Modules\\Setting\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/Setting/Bootstrap.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\CreateShipmentResult' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/CreateShipmentResult.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\CustomsInfo' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/CustomsInfo.php',
|
||||
'Xentral\\Modules\\ShippingMethod\\Model\\Product' => __DIR__ . '/../..' . '/classes/Modules/ShippingMethod/Model/Product.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Bootstrap.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Exception/InvalidArgumentException.php',
|
||||
'Xentral\\Modules\\ShippingTaxSplit\\Exception\\ShippingTaxSplitExceptionInterface' => __DIR__ . '/../..' . '/classes/Modules/ShippingTaxSplit/Exception/ShippingTaxSplitExceptionInterface.php',
|
||||
@ -3723,6 +3781,7 @@ class ComposerStaticInit0c49a81c1214ef2f7493c6ce921b17ee
|
||||
'Xentral\\Modules\\SubscriptionCycle\\Service\\SubscriptionCycleJobService' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/Service/SubscriptionCycleJobService.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleCacheFiller' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionCycleCacheFiller.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionCycleModuleInterface' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionCycleModuleInterface.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModule' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionModule.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\SubscriptionModuleInterface' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/SubscriptionModuleInterface.php',
|
||||
'Xentral\\Modules\\SubscriptionCycle\\Wrapper\\BusinessLetterWrapper' => __DIR__ . '/../..' . '/classes/Modules/SubscriptionCycle/Wrapper/BusinessLetterWrapper.php',
|
||||
'Xentral\\Modules\\SuperSearch\\Bootstrap' => __DIR__ . '/../..' . '/classes/Modules/SuperSearch/Bootstrap.php',
|
||||
|
6379
vendor/composer/installed.json
vendored
6379
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
502
vendor/composer/installed.php
vendored
Normal file
502
vendor/composer/installed.php
vendored
Normal file
@ -0,0 +1,502 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'name' => '__root__',
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '95cb03f43b1395537a50c081cd9287e4f5ea50c1',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev' => true,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '95cb03f43b1395537a50c081cd9287e4f5ea50c1',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'aura/sqlquery' => array(
|
||||
'pretty_version' => '2.7.1',
|
||||
'version' => '2.7.1.0',
|
||||
'reference' => 'dd81b57aeb43628180a9c70a4df58d872024d7f2',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../aura/sqlquery',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'aws/aws-sdk-php' => array(
|
||||
'pretty_version' => '3.175.2',
|
||||
'version' => '3.175.2.0',
|
||||
'reference' => 'a8e88eac60b403ed76643327e74f55831570a64b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../aws/aws-sdk-php',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'container-interop/container-interop' => array(
|
||||
'pretty_version' => '1.2.0',
|
||||
'version' => '1.2.0.0',
|
||||
'reference' => '79cbf1341c22ec75643d841642dd5d6acd83bdb8',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../container-interop/container-interop',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'datto/json-rpc' => array(
|
||||
'pretty_version' => '6.1.0',
|
||||
'version' => '6.1.0.0',
|
||||
'reference' => 'ad4d735f48d80c6b53f7405e5007d97c996533f6',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../datto/json-rpc',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'datto/json-rpc-http' => array(
|
||||
'pretty_version' => '5.0.6',
|
||||
'version' => '5.0.6.0',
|
||||
'reference' => 'db15a075f3562c4e8d297b9082acc5b2869bd4b4',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../datto/json-rpc-http',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'ezyang/htmlpurifier' => array(
|
||||
'pretty_version' => 'v4.13.0',
|
||||
'version' => '4.13.0.0',
|
||||
'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'fiskaly/fiskaly-sdk-php' => array(
|
||||
'pretty_version' => '1.2.100',
|
||||
'version' => '1.2.100.0',
|
||||
'reference' => 'f2598d32f51ca18f81615df2b63deff7d9569097',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../fiskaly/fiskaly-sdk-php',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'guzzlehttp/guzzle' => array(
|
||||
'pretty_version' => '6.5.5',
|
||||
'version' => '6.5.5.0',
|
||||
'reference' => '9d4290de1cfd701f38099ef7e183b64b4b7b0c5e',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'guzzlehttp/promises' => array(
|
||||
'pretty_version' => '1.4.1',
|
||||
'version' => '1.4.1.0',
|
||||
'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../guzzlehttp/promises',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'guzzlehttp/psr7' => array(
|
||||
'pretty_version' => '1.8.1',
|
||||
'version' => '1.8.1.0',
|
||||
'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../guzzlehttp/psr7',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'itbz/fpdf' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'laminas/laminas-loader' => array(
|
||||
'pretty_version' => '2.6.1',
|
||||
'version' => '2.6.1.0',
|
||||
'reference' => '5d01c2c237ae9e68bec262f339947e2ea18979bc',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-loader',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-mail' => array(
|
||||
'pretty_version' => '2.12.5',
|
||||
'version' => '2.12.5.0',
|
||||
'reference' => 'ed5b36a0deef4ffafe6138c2ae9cafcffafab856',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-mail',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-mime' => array(
|
||||
'pretty_version' => '2.7.4',
|
||||
'version' => '2.7.4.0',
|
||||
'reference' => 'e45a7d856bf7b4a7b5bd00d6371f9961dc233add',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-mime',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-stdlib' => array(
|
||||
'pretty_version' => '3.2.1',
|
||||
'version' => '3.2.1.0',
|
||||
'reference' => '2b18347625a2f06a1a485acfbc870f699dbe51c6',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-stdlib',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-validator' => array(
|
||||
'pretty_version' => '2.13.5',
|
||||
'version' => '2.13.5.0',
|
||||
'reference' => 'd334dddda43af263d6a7e5024fd2b013cb6981f7',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laminas/laminas-validator',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laminas/laminas-zendframework-bridge' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'league/color-extractor' => array(
|
||||
'pretty_version' => '0.3.2',
|
||||
'version' => '0.3.2.0',
|
||||
'reference' => '837086ec60f50c84c611c613963e4ad2e2aec806',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../league/color-extractor',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'league/flysystem' => array(
|
||||
'pretty_version' => '1.0.70',
|
||||
'version' => '1.0.70.0',
|
||||
'reference' => '585824702f534f8d3cf7fab7225e8466cc4b7493',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../league/flysystem',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'league/oauth1-client' => array(
|
||||
'pretty_version' => 'v1.9.0',
|
||||
'version' => '1.9.0.0',
|
||||
'reference' => '1e7e6be2dc543bf466236fb171e5b20e1b06aee6',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../league/oauth1-client',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'league/oauth2-client' => array(
|
||||
'pretty_version' => '2.6.0',
|
||||
'version' => '2.6.0.0',
|
||||
'reference' => 'badb01e62383430706433191b82506b6df24ad98',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../league/oauth2-client',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'lfkeitel/phptotp' => array(
|
||||
'pretty_version' => 'v1.0.0',
|
||||
'version' => '1.0.0.0',
|
||||
'reference' => '2211fb6e025d3c10362771c54c9a9ad5593a3469',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../lfkeitel/phptotp',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'matthecat/colorextractor' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '*',
|
||||
),
|
||||
),
|
||||
'mtdowling/jmespath.php' => array(
|
||||
'pretty_version' => '2.6.0',
|
||||
'version' => '2.6.0.0',
|
||||
'reference' => '42dae2cbd13154083ca6d70099692fef8ca84bfb',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../mtdowling/jmespath.php',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'nikic/fast-route' => array(
|
||||
'pretty_version' => 'v1.3.0',
|
||||
'version' => '1.3.0.0',
|
||||
'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nikic/fast-route',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'paragonie/random_compat' => array(
|
||||
'pretty_version' => 'v9.99.100',
|
||||
'version' => '9.99.100.0',
|
||||
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../paragonie/random_compat',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'phpmailer/phpmailer' => array(
|
||||
'pretty_version' => 'v6.3.0',
|
||||
'version' => '6.3.0.0',
|
||||
'reference' => '4a08cf4cdd2c38d12ee2b9fa69e5d235f37a6dcb',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phpmailer/phpmailer',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'phpseclib/phpseclib' => array(
|
||||
'pretty_version' => '2.0.30',
|
||||
'version' => '2.0.30.0',
|
||||
'reference' => '136b9ca7eebef78be14abf90d65c5e57b6bc5d36',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phpseclib/phpseclib',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/container' => array(
|
||||
'pretty_version' => '1.1.1',
|
||||
'version' => '1.1.1.0',
|
||||
'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/container',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/http-message' => array(
|
||||
'pretty_version' => '1.0.1',
|
||||
'version' => '1.0.1.0',
|
||||
'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/http-message',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/http-message-implementation' => array(
|
||||
'dev_requirement' => false,
|
||||
'provided' => array(
|
||||
0 => '1.0',
|
||||
),
|
||||
),
|
||||
'psr/log' => array(
|
||||
'pretty_version' => '1.1.3',
|
||||
'version' => '1.1.3.0',
|
||||
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/log',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'rakit/validation' => array(
|
||||
'pretty_version' => 'v0.22.3',
|
||||
'version' => '0.22.3.0',
|
||||
'reference' => '61ed77b772c214faa67aaf1c4adf81502b06cd4b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../rakit/validation',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'ralouphie/getallheaders' => array(
|
||||
'pretty_version' => '3.0.3',
|
||||
'version' => '3.0.3.0',
|
||||
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../ralouphie/getallheaders',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/dav' => array(
|
||||
'pretty_version' => '3.2.3',
|
||||
'version' => '3.2.3.0',
|
||||
'reference' => 'a9780ce4f35560ecbd0af524ad32d9d2c8954b80',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/dav',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/event' => array(
|
||||
'pretty_version' => '3.0.0',
|
||||
'version' => '3.0.0.0',
|
||||
'reference' => '831d586f5a442dceacdcf5e9c4c36a4db99a3534',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/event',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/http' => array(
|
||||
'pretty_version' => 'v4.2.4',
|
||||
'version' => '4.2.4.0',
|
||||
'reference' => 'acccec4ba863959b2d10c1fa0fb902736c5c8956',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/http',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/uri' => array(
|
||||
'pretty_version' => '1.2.1',
|
||||
'version' => '1.2.1.0',
|
||||
'reference' => 'ada354d83579565949d80b2e15593c2371225e61',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/uri',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/vobject' => array(
|
||||
'pretty_version' => '4.2.2',
|
||||
'version' => '4.2.2.0',
|
||||
'reference' => '449616b2d45b95c8973975de23f34a3d14f63b4b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/vobject',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'sabre/xml' => array(
|
||||
'pretty_version' => '1.5.1',
|
||||
'version' => '1.5.1.0',
|
||||
'reference' => 'a367665f1df614c3b8fefc30a54de7cd295e444e',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../sabre/xml',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'smarty/smarty' => array(
|
||||
'pretty_version' => 'v3.1.39',
|
||||
'version' => '3.1.39.0',
|
||||
'reference' => 'e27da524f7bcd7361e3ea5cdfa99c4378a7b5419',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../smarty/smarty',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'swiss-payment-slip/swiss-payment-slip' => array(
|
||||
'pretty_version' => '0.13.0',
|
||||
'version' => '0.13.0.0',
|
||||
'reference' => '3f5e23552e59ff486318c3af66b0374fa61a176f',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip',
|
||||
'aliases' => array(
|
||||
0 => '0.11.1',
|
||||
),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'swiss-payment-slip/swiss-payment-slip-fpdf' => array(
|
||||
'pretty_version' => '0.6.0',
|
||||
'version' => '0.6.0.0',
|
||||
'reference' => '72f722188d89b2651d4751ab812146cb1f165061',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip-fpdf',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'swiss-payment-slip/swiss-payment-slip-pdf' => array(
|
||||
'pretty_version' => '0.13.1',
|
||||
'version' => '0.13.1.0',
|
||||
'reference' => '4355743b2406875e9fed2117d8df445ba6848be4',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../swiss-payment-slip/swiss-payment-slip-pdf',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/polyfill-intl-idn' => array(
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'reference' => '2d63434d922daf7da8dd863e7907e67ee3031483',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-intl-idn',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/polyfill-intl-normalizer' => array(
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'reference' => '43a0283138253ed1d48d352ab6d0bdb3f809f248',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/polyfill-mbstring' => array(
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'reference' => '5232de97ee3b75b0360528dae24e73db49566ab1',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/polyfill-php72' => array(
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/polyfill-php72',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'tecnickcom/tcpdf' => array(
|
||||
'pretty_version' => '6.3.5',
|
||||
'version' => '6.3.5.0',
|
||||
'reference' => '19a535eaa7fb1c1cac499109deeb1a7a201b4549',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../tecnickcom/tcpdf',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'true/punycode' => array(
|
||||
'pretty_version' => 'v2.1.1',
|
||||
'version' => '2.1.1.0',
|
||||
'reference' => 'a4d0c11a36dd7f4e7cd7096076cab6d3378a071e',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../true/punycode',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'y0lk/oauth1-etsy' => array(
|
||||
'pretty_version' => '1.1.0',
|
||||
'version' => '1.1.0.0',
|
||||
'reference' => '3fef9d03787e01a72ef19cdcbbc243c166a5d425',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../y0lk/oauth1-etsy',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'zendframework/zend-loader' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '2.6.1',
|
||||
),
|
||||
),
|
||||
'zendframework/zend-mail' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '^2.10.0',
|
||||
),
|
||||
),
|
||||
'zendframework/zend-mime' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '^2.7.2',
|
||||
),
|
||||
),
|
||||
'zendframework/zend-stdlib' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '3.2.1',
|
||||
),
|
||||
),
|
||||
'zendframework/zend-validator' => array(
|
||||
'dev_requirement' => false,
|
||||
'replaced' => array(
|
||||
0 => '^2.13.0',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
26
vendor/composer/platform_check.php
vendored
Normal file
26
vendor/composer/platform_check.php
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
// platform_check.php @generated by Composer
|
||||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 70400)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
if (!headers_sent()) {
|
||||
header('HTTP/1.1 500 Internal Server Error');
|
||||
}
|
||||
if (!ini_get('display_errors')) {
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
|
||||
fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
|
||||
} elseif (!headers_sent()) {
|
||||
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
|
||||
}
|
||||
}
|
||||
trigger_error(
|
||||
'Composer detected issues in your platform: ' . implode(' ', $issues),
|
||||
E_USER_ERROR
|
||||
);
|
||||
}
|
58
vendor/laminas/laminas-loader/composer.json
vendored
Normal file
58
vendor/laminas/laminas-loader/composer.json
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
"name": "laminas/laminas-loader",
|
||||
"description": "Autoloading and plugin loading strategies",
|
||||
"license": "BSD-3-Clause",
|
||||
"keywords": [
|
||||
"laminas",
|
||||
"loader"
|
||||
],
|
||||
"homepage": "https://laminas.dev",
|
||||
"support": {
|
||||
"docs": "https://docs.laminas.dev/laminas-loader/",
|
||||
"issues": "https://github.com/laminas/laminas-loader/issues",
|
||||
"source": "https://github.com/laminas/laminas-loader",
|
||||
"rss": "https://github.com/laminas/laminas-loader/releases.atom",
|
||||
"chat": "https://laminas.dev/chat",
|
||||
"forum": "https://discourse.laminas.dev"
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6.x-dev",
|
||||
"dev-develop": "2.7.x-dev"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"laminas/laminas-zendframework-bridge": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laminas/laminas-coding-standard": "~1.0.0",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laminas\\Loader\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"LaminasTest\\Loader\\": "test/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
],
|
||||
"cs-check": "phpcs",
|
||||
"cs-fix": "phpcbf",
|
||||
"test": "phpunit --colors=always",
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||
},
|
||||
"replace": {
|
||||
"zendframework/zend-loader": "self.version"
|
||||
}
|
||||
}
|
63
vendor/laminas/laminas-mime/composer.json
vendored
Normal file
63
vendor/laminas/laminas-mime/composer.json
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"name": "laminas/laminas-mime",
|
||||
"description": "Create and parse MIME messages and parts",
|
||||
"license": "BSD-3-Clause",
|
||||
"keywords": [
|
||||
"laminas",
|
||||
"mime"
|
||||
],
|
||||
"homepage": "https://laminas.dev",
|
||||
"support": {
|
||||
"docs": "https://docs.laminas.dev/laminas-mime/",
|
||||
"issues": "https://github.com/laminas/laminas-mime/issues",
|
||||
"source": "https://github.com/laminas/laminas-mime",
|
||||
"rss": "https://github.com/laminas/laminas-mime/releases.atom",
|
||||
"chat": "https://laminas.dev/chat",
|
||||
"forum": "https://discourse.laminas.dev"
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.7.x-dev",
|
||||
"dev-develop": "2.8.x-dev"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"laminas/laminas-stdlib": "^2.7 || ^3.0",
|
||||
"laminas/laminas-zendframework-bridge": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laminas/laminas-coding-standard": "~1.0.0",
|
||||
"laminas/laminas-mail": "^2.6",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20"
|
||||
},
|
||||
"suggest": {
|
||||
"laminas/laminas-mail": "Laminas\\Mail component"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laminas\\Mime\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"LaminasTest\\Mime\\": "test/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
],
|
||||
"cs-check": "phpcs",
|
||||
"cs-fix": "phpcbf",
|
||||
"test": "phpunit --colors=always",
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||
},
|
||||
"replace": {
|
||||
"zendframework/zend-mime": "^2.7.2"
|
||||
}
|
||||
}
|
60
vendor/laminas/laminas-stdlib/composer.json
vendored
Normal file
60
vendor/laminas/laminas-stdlib/composer.json
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "laminas/laminas-stdlib",
|
||||
"description": "SPL extensions, array utilities, error handlers, and more",
|
||||
"license": "BSD-3-Clause",
|
||||
"keywords": [
|
||||
"laminas",
|
||||
"stdlib"
|
||||
],
|
||||
"homepage": "https://laminas.dev",
|
||||
"support": {
|
||||
"docs": "https://docs.laminas.dev/laminas-stdlib/",
|
||||
"issues": "https://github.com/laminas/laminas-stdlib/issues",
|
||||
"source": "https://github.com/laminas/laminas-stdlib",
|
||||
"rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
|
||||
"chat": "https://laminas.dev/chat",
|
||||
"forum": "https://discourse.laminas.dev"
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2.x-dev",
|
||||
"dev-develop": "3.3.x-dev"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0",
|
||||
"laminas/laminas-zendframework-bridge": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laminas/laminas-coding-standard": "~1.0.0",
|
||||
"phpbench/phpbench": "^0.13",
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laminas\\Stdlib\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"LaminasTest\\Stdlib\\": "test/",
|
||||
"LaminasBench\\Stdlib\\": "benchmark/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
],
|
||||
"cs-check": "phpcs",
|
||||
"cs-fix": "phpcbf",
|
||||
"test": "phpunit --colors=always",
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||
},
|
||||
"replace": {
|
||||
"zendframework/zend-stdlib": "self.version"
|
||||
}
|
||||
}
|
84
vendor/laminas/laminas-validator/composer.json
vendored
Normal file
84
vendor/laminas/laminas-validator/composer.json
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
{
|
||||
"name": "laminas/laminas-validator",
|
||||
"description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria",
|
||||
"license": "BSD-3-Clause",
|
||||
"keywords": [
|
||||
"laminas",
|
||||
"validator"
|
||||
],
|
||||
"homepage": "https://laminas.dev",
|
||||
"support": {
|
||||
"docs": "https://docs.laminas.dev/laminas-validator/",
|
||||
"issues": "https://github.com/laminas/laminas-validator/issues",
|
||||
"source": "https://github.com/laminas/laminas-validator",
|
||||
"rss": "https://github.com/laminas/laminas-validator/releases.atom",
|
||||
"chat": "https://laminas.dev/chat",
|
||||
"forum": "https://discourse.laminas.dev"
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"laminas": {
|
||||
"component": "Laminas\\Validator",
|
||||
"config-provider": "Laminas\\Validator\\ConfigProvider"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1",
|
||||
"container-interop/container-interop": "^1.1",
|
||||
"laminas/laminas-stdlib": "^3.2.1",
|
||||
"laminas/laminas-zendframework-bridge": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laminas/laminas-cache": "^2.6.1",
|
||||
"laminas/laminas-coding-standard": "~1.0.0",
|
||||
"laminas/laminas-config": "^2.6",
|
||||
"laminas/laminas-db": "^2.7",
|
||||
"laminas/laminas-filter": "^2.6",
|
||||
"laminas/laminas-http": "^2.5.4",
|
||||
"laminas/laminas-i18n": "^2.6",
|
||||
"laminas/laminas-math": "^2.6",
|
||||
"laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
|
||||
"laminas/laminas-session": "^2.8",
|
||||
"laminas/laminas-uri": "^2.5",
|
||||
"phpunit/phpunit": "^7.5.20 || ^8.5.2",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator",
|
||||
"laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator",
|
||||
"laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages",
|
||||
"laminas/laminas-i18n-resources": "Translations of validator messages",
|
||||
"laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator",
|
||||
"laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains",
|
||||
"laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator",
|
||||
"laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators",
|
||||
"psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Laminas\\Validator\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"LaminasTest\\Validator\\": "test/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"check": [
|
||||
"@cs-check",
|
||||
"@test"
|
||||
],
|
||||
"cs-check": "phpcs",
|
||||
"cs-fix": "phpcbf",
|
||||
"test": "phpunit --colors=always",
|
||||
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||
},
|
||||
"replace": {
|
||||
"zendframework/zend-validator": "^2.13.0"
|
||||
}
|
||||
}
|
0
vendor/laminas/laminas-validator/src/Db/AbstractDb.php
vendored
Normal file → Executable file
0
vendor/laminas/laminas-validator/src/Db/AbstractDb.php
vendored
Normal file → Executable file
0
vendor/laminas/laminas-validator/src/Isbn/Isbn10.php
vendored
Normal file → Executable file
0
vendor/laminas/laminas-validator/src/Isbn/Isbn10.php
vendored
Normal file → Executable file
0
vendor/laminas/laminas-validator/src/Isbn/Isbn13.php
vendored
Normal file → Executable file
0
vendor/laminas/laminas-validator/src/Isbn/Isbn13.php
vendored
Normal file → Executable file
7
vendor/league/oauth1-client/.gitignore
vendored
Normal file
7
vendor/league/oauth1-client/.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
/build
|
||||
/vendor
|
||||
/composer.lock
|
||||
/coverage.xml
|
||||
/.phpunit.result.cache
|
||||
/.php_cs.cache
|
||||
.DS_Store
|
29
vendor/league/oauth1-client/.php_cs.dist
vendored
Normal file
29
vendor/league/oauth1-client/.php_cs.dist
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()->in([__DIR__ . '/src', __DIR__ . '/tests']);
|
||||
|
||||
return PhpCsFixer\Config::create()
|
||||
->setRules([
|
||||
'@PSR2' => true,
|
||||
'array_syntax' => ['syntax' => 'short'],
|
||||
'binary_operator_spaces' => true,
|
||||
'blank_line_before_return' => true,
|
||||
'cast_spaces' => true,
|
||||
'concat_space' => ['spacing' => 'one'],
|
||||
'no_singleline_whitespace_before_semicolons' => true,
|
||||
'not_operator_with_space' => true,
|
||||
'ordered_imports' => true,
|
||||
'phpdoc_align' => true,
|
||||
'phpdoc_indent' => true,
|
||||
'phpdoc_no_access' => true,
|
||||
'phpdoc_no_alias_tag' => true,
|
||||
'phpdoc_no_package' => true,
|
||||
'phpdoc_scalar' => true,
|
||||
'phpdoc_separation' => true,
|
||||
'phpdoc_summary' => true,
|
||||
'phpdoc_to_comment' => true,
|
||||
'phpdoc_trim' => true,
|
||||
'single_blank_line_at_eof' => true,
|
||||
'ternary_operator_spaces' => true,
|
||||
])
|
||||
->setFinder($finder);
|
35
vendor/league/oauth1-client/.scrutinizer.yml
vendored
Normal file
35
vendor/league/oauth1-client/.scrutinizer.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
filter:
|
||||
excluded_paths: [tests/*]
|
||||
checks:
|
||||
php:
|
||||
code_rating: true
|
||||
remove_extra_empty_lines: true
|
||||
remove_php_closing_tag: true
|
||||
remove_trailing_whitespace: true
|
||||
fix_use_statements:
|
||||
remove_unused: true
|
||||
preserve_multiple: false
|
||||
preserve_blanklines: true
|
||||
order_alphabetically: true
|
||||
fix_php_opening_tag: true
|
||||
fix_linefeed: true
|
||||
fix_line_ending: true
|
||||
fix_identation_4spaces: true
|
||||
fix_doc_comments: true
|
||||
tools:
|
||||
external_code_coverage:
|
||||
timeout: 600
|
||||
runs: 4
|
||||
php_analyzer: true
|
||||
php_code_coverage: false
|
||||
php_code_sniffer:
|
||||
config:
|
||||
standard: PSR2
|
||||
filter:
|
||||
paths: ['src']
|
||||
php_loc:
|
||||
enabled: true
|
||||
excluded_dirs: [vendor, tests]
|
||||
php_cpd:
|
||||
enabled: true
|
||||
excluded_dirs: [vendor, tests]
|
57
vendor/league/oauth1-client/.travis.yml
vendored
Normal file
57
vendor/league/oauth1-client/.travis.yml
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
language: php
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 7.1
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS=""
|
||||
- php: 7.1
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--prefer-lowest"
|
||||
- php: 7.2
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS=""
|
||||
- php: 7.2
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--prefer-lowest"
|
||||
- php: 7.3
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS=""
|
||||
- php: 7.3
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--prefer-lowest"
|
||||
- php: 7.4
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS=""
|
||||
- php: 7.4
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--prefer-lowest"
|
||||
- php: 8.0
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS=""
|
||||
- php: 8.0
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--prefer-lowest"
|
||||
- php: nightly
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--ignore-platform-reqs"
|
||||
- php: nightly
|
||||
dist: bionic
|
||||
env: COMPOSER_OPTS="--ignore-platform-reqs --prefer-lowest"
|
||||
allow_failures:
|
||||
- php: nightly
|
||||
env: COMPOSER_OPTS="--ignore-platform-reqs"
|
||||
- php: nightly
|
||||
env: COMPOSER_OPTS="--ignore-platform-reqs --prefer-lowest"
|
||||
|
||||
install:
|
||||
- travis_retry composer update --prefer-dist $COMPOSER_OPTS
|
||||
|
||||
script:
|
||||
- composer php-cs-fixer:lint
|
||||
- composer test:unit
|
||||
- composer analyze
|
||||
|
||||
after_script:
|
||||
- wget https://scrutinizer-ci.com/ocular.phar
|
||||
- php ocular.phar code-coverage:upload --format=php-clover coverage.xml
|
65
vendor/league/oauth1-client/composer.json
vendored
Normal file
65
vendor/league/oauth1-client/composer.json
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
"name": "league/oauth1-client",
|
||||
"description": "OAuth 1.0 Client Library",
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": ">=7.1||>=8.0",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
"guzzlehttp/guzzle": "^6.0|^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-simplexml": "*",
|
||||
"phpunit/phpunit": "^7.5||9.5",
|
||||
"mockery/mockery": "^1.3.3",
|
||||
"phpstan/phpstan": "^0.12.42",
|
||||
"friendsofphp/php-cs-fixer": "^2.17"
|
||||
},
|
||||
"scripts": {
|
||||
"analyze": "vendor/bin/phpstan analyse -l 6 src/",
|
||||
"php-cs-fixer:lint": "PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix --verbose --dry-run",
|
||||
"php-cs-fixer:format": "PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix",
|
||||
"test:unit": "vendor/bin/phpunit --coverage-text --coverage-clover coverage.xml"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-simplexml": "For decoding XML-based responses."
|
||||
},
|
||||
"keywords": [
|
||||
"oauth",
|
||||
"oauth1",
|
||||
"authorization",
|
||||
"authentication",
|
||||
"idp",
|
||||
"identity",
|
||||
"sso",
|
||||
"single sign on",
|
||||
"bitbucket",
|
||||
"trello",
|
||||
"tumblr",
|
||||
"twitter"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Ben Corlett",
|
||||
"email": "bencorlett@me.com",
|
||||
"homepage": "http://www.webcomm.com.au",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\OAuth1\\Client\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"League\\OAuth1\\Client\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev",
|
||||
"dev-develop": "2.0-dev"
|
||||
}
|
||||
}
|
||||
}
|
28
vendor/league/oauth1-client/tests/ClientCredentialsTest.php
vendored
Normal file
28
vendor/league/oauth1-client/tests/ClientCredentialsTest.php
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Credentials\ClientCredentials;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class ClientCredentialsTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testManipulating()
|
||||
{
|
||||
$credentials = new ClientCredentials;
|
||||
$this->assertNull($credentials->getIdentifier());
|
||||
$credentials->setIdentifier('foo');
|
||||
$this->assertEquals('foo', $credentials->getIdentifier());
|
||||
$this->assertNull($credentials->getSecret());
|
||||
$credentials->setSecret('foo');
|
||||
$this->assertEquals('foo', $credentials->getSecret());
|
||||
}
|
||||
}
|
156
vendor/league/oauth1-client/tests/HmacSha1SignatureTest.php
vendored
Normal file
156
vendor/league/oauth1-client/tests/HmacSha1SignatureTest.php
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Signature\HmacSha1Signature;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class HmacSha1SignatureTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testSigningRequest()
|
||||
{
|
||||
$signature = new HmacSha1Signature($this->getMockClientCredentials());
|
||||
|
||||
$uri = 'http://www.example.com/?qux=corge';
|
||||
$parameters = ['foo' => 'bar', 'baz' => null];
|
||||
|
||||
$this->assertEquals('A3Y7C1SUHXR1EBYIUlT3d6QT1cQ=', $signature->sign($uri, $parameters));
|
||||
}
|
||||
|
||||
public function testSigningRequestWhereThePortIsNotStandard()
|
||||
{
|
||||
$signature = new HmacSha1Signature($this->getMockClientCredentials());
|
||||
|
||||
$uri = 'http://www.example.com:8080/?qux=corge';
|
||||
$parameters = ['foo' => 'bar', 'baz' => null];
|
||||
|
||||
$this->assertEquals('ECcWxyi5UOC1G0MxH0ygm6Pd6JE=', $signature->sign($uri, $parameters));
|
||||
}
|
||||
|
||||
public function testQueryStringFromArray()
|
||||
{
|
||||
$array = ['a' => 'b'];
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'a%3Db',
|
||||
$res
|
||||
);
|
||||
}
|
||||
|
||||
public function testQueryStringFromIndexedArray()
|
||||
{
|
||||
$array = ['a', 'b'];
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'0%3Da%261%3Db',
|
||||
$res
|
||||
);
|
||||
}
|
||||
|
||||
public function testQueryStringFromMultiDimensionalArray()
|
||||
{
|
||||
$array = [
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => null,
|
||||
'false' => false,
|
||||
];
|
||||
|
||||
// Convert to query string.
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'a%5Bb%5D%5Bc%5D%3Dd%26a%5Be%5D%5Bf%5D%3Dg%26h%3Di%26empty%3D%26null%3D%26false%3D',
|
||||
$res
|
||||
);
|
||||
|
||||
// Reverse engineer the string.
|
||||
$res = urldecode($res);
|
||||
|
||||
$this->assertSame(
|
||||
'a[b][c]=d&a[e][f]=g&h=i&empty=&null=&false=',
|
||||
$res
|
||||
);
|
||||
|
||||
// Finally, parse the string back to an array.
|
||||
parse_str($res, $original_array);
|
||||
|
||||
// And ensure it matches the orignal array (approximately).
|
||||
$this->assertSame(
|
||||
[
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => '', // null value gets lost in string translation
|
||||
'false' => '', // false value gets lost in string translation
|
||||
],
|
||||
$original_array
|
||||
);
|
||||
}
|
||||
|
||||
public function testSigningRequestWithMultiDimensionalParams()
|
||||
{
|
||||
$signature = new HmacSha1Signature($this->getMockClientCredentials());
|
||||
|
||||
$uri = 'http://www.example.com/';
|
||||
$parameters = [
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => null,
|
||||
'false' => false,
|
||||
];
|
||||
|
||||
$this->assertEquals('ZUxiJKugeEplaZm9e4hshN0I70U=', $signature->sign($uri, $parameters));
|
||||
}
|
||||
|
||||
protected function invokeQueryStringFromData(array $args)
|
||||
{
|
||||
$signature = new HmacSha1Signature(m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface'));
|
||||
$refl = new \ReflectionObject($signature);
|
||||
$method = $refl->getMethod('queryStringFromData');
|
||||
$method->setAccessible(true);
|
||||
|
||||
return $method->invokeArgs($signature, [$args]);
|
||||
}
|
||||
|
||||
protected function getMockClientCredentials()
|
||||
{
|
||||
$clientCredentials = m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface');
|
||||
$clientCredentials->shouldReceive('getSecret')->andReturn('clientsecret');
|
||||
|
||||
return $clientCredentials;
|
||||
}
|
||||
}
|
43
vendor/league/oauth1-client/tests/PlainTextSignatureTest.php
vendored
Normal file
43
vendor/league/oauth1-client/tests/PlainTextSignatureTest.php
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Signature\PlainTextSignature;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class PlainTextSignatureTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testSigningRequest()
|
||||
{
|
||||
$signature = new PlainTextSignature($this->getMockClientCredentials());
|
||||
$this->assertEquals('clientsecret&', $signature->sign($uri = 'http://www.example.com/'));
|
||||
|
||||
$signature->setCredentials($this->getMockCredentials());
|
||||
$this->assertEquals('clientsecret&tokensecret', $signature->sign($uri));
|
||||
$this->assertEquals('PLAINTEXT', $signature->method());
|
||||
}
|
||||
|
||||
protected function getMockClientCredentials()
|
||||
{
|
||||
$clientCredentials = m::mock('League\OAuth1\Client\Credentials\ClientCredentialsInterface');
|
||||
$clientCredentials->shouldReceive('getSecret')->andReturn('clientsecret');
|
||||
|
||||
return $clientCredentials;
|
||||
}
|
||||
|
||||
protected function getMockCredentials()
|
||||
{
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\CredentialsInterface');
|
||||
$credentials->shouldReceive('getSecret')->andReturn('tokensecret');
|
||||
|
||||
return $credentials;
|
||||
}
|
||||
}
|
75
vendor/league/oauth1-client/tests/RsaClientCredentialsTest.php
vendored
Normal file
75
vendor/league/oauth1-client/tests/RsaClientCredentialsTest.php
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Credentials\CredentialsException;
|
||||
use League\OAuth1\Client\Credentials\RsaClientCredentials;
|
||||
use OpenSSLAsymmetricKey;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class RsaClientCredentialsTest extends TestCase
|
||||
{
|
||||
public function testGetRsaPublicKey()
|
||||
{
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_publickey.pem');
|
||||
|
||||
/** @var resource|OpenSSLAsymmetricKey $key */
|
||||
$key = $credentials->getRsaPublicKey();
|
||||
$this->assertFalse(is_null($key));
|
||||
|
||||
$this->assertEquals($key, $credentials->getRsaPublicKey());
|
||||
}
|
||||
|
||||
public function testGetRsaPublicKeyNotExists()
|
||||
{
|
||||
$this->expectException(CredentialsException::class);
|
||||
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPublicKey('fail');
|
||||
|
||||
$credentials->getRsaPublicKey();
|
||||
}
|
||||
|
||||
public function testGetRsaPublicKeyInvalid()
|
||||
{
|
||||
$this->expectException(CredentialsException::class);
|
||||
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_invalidkey.pem');
|
||||
|
||||
$credentials->getRsaPublicKey();
|
||||
}
|
||||
|
||||
public function testGetRsaPrivateKey()
|
||||
{
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_privatekey.pem');
|
||||
|
||||
/** @var resource|OpenSSLAsymmetricKey $key */
|
||||
$key = $credentials->getRsaPrivateKey();
|
||||
$this->assertFalse(is_null($key));
|
||||
|
||||
$this->assertEquals($key, $credentials->getRsaPrivateKey());
|
||||
}
|
||||
|
||||
public function testGetRsaPrivateKeyNotExists()
|
||||
{
|
||||
$this->expectException(CredentialsException::class);
|
||||
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPrivateKey('fail');
|
||||
|
||||
$credentials->getRsaPrivateKey();
|
||||
}
|
||||
|
||||
public function testGetRsaPrivateKeyInvalid()
|
||||
{
|
||||
$this->expectException(CredentialsException::class);
|
||||
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_invalidkey.pem');
|
||||
|
||||
$credentials->getRsaPrivateKey();
|
||||
}
|
||||
}
|
148
vendor/league/oauth1-client/tests/RsaSha1SignatureTest.php
vendored
Normal file
148
vendor/league/oauth1-client/tests/RsaSha1SignatureTest.php
vendored
Normal file
@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Credentials\ClientCredentialsInterface;
|
||||
use League\OAuth1\Client\Credentials\RsaClientCredentials;
|
||||
use League\OAuth1\Client\Signature\RsaSha1Signature;
|
||||
use Mockery;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class RsaSha1SignatureTest extends TestCase
|
||||
{
|
||||
public function testMethod()
|
||||
{
|
||||
$signature = new RsaSha1Signature($this->getClientCredentials());
|
||||
$this->assertEquals('RSA-SHA1', $signature->method());
|
||||
}
|
||||
|
||||
public function testSigningRequest()
|
||||
{
|
||||
$signature = new RsaSha1Signature($this->getClientCredentials());
|
||||
|
||||
$uri = 'http://www.example.com/?qux=corge';
|
||||
$parameters = ['foo' => 'bar', 'baz' => null];
|
||||
|
||||
$this->assertEquals('h8vpV4CYnLwss+rWicKE4sY6AiW2+DT6Fe7qB8jA7LSLhX5jvLEeX1D8E2ynSePSksAY48j+OSLu9vo5juS2duwNK8UA2Rtnnvuj6UFxpx70dpjHAsQg6EbycGptL/SChDkxfpG8LhuwX1FlFa+H0jLYXI5Dy8j90g51GRJbj48=', $signature->sign($uri, $parameters));
|
||||
}
|
||||
|
||||
public function testQueryStringFromArray()
|
||||
{
|
||||
$array = ['a' => 'b'];
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'a%3Db',
|
||||
$res
|
||||
);
|
||||
}
|
||||
|
||||
public function testQueryStringFromIndexedArray()
|
||||
{
|
||||
$array = ['a', 'b'];
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'0%3Da%261%3Db',
|
||||
$res
|
||||
);
|
||||
}
|
||||
|
||||
public function testQueryStringFromMultiDimensionalArray()
|
||||
{
|
||||
$array = [
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => null,
|
||||
'false' => false,
|
||||
];
|
||||
|
||||
// Convert to query string.
|
||||
$res = $this->invokeQueryStringFromData($array);
|
||||
|
||||
$this->assertSame(
|
||||
'a%5Bb%5D%5Bc%5D%3Dd%26a%5Be%5D%5Bf%5D%3Dg%26h%3Di%26empty%3D%26null%3D%26false%3D',
|
||||
$res
|
||||
);
|
||||
|
||||
// Reverse engineer the string.
|
||||
$res = urldecode($res);
|
||||
|
||||
$this->assertSame(
|
||||
'a[b][c]=d&a[e][f]=g&h=i&empty=&null=&false=',
|
||||
$res
|
||||
);
|
||||
|
||||
// Finally, parse the string back to an array.
|
||||
parse_str($res, $original_array);
|
||||
|
||||
// And ensure it matches the orignal array (approximately).
|
||||
$this->assertSame(
|
||||
[
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => '', // null value gets lost in string translation
|
||||
'false' => '', // false value gets lost in string translation
|
||||
],
|
||||
$original_array
|
||||
);
|
||||
}
|
||||
|
||||
public function testSigningRequestWithMultiDimensionalParams()
|
||||
{
|
||||
$signature = new RsaSha1Signature($this->getClientCredentials());
|
||||
|
||||
$uri = 'http://www.example.com/';
|
||||
$parameters = [
|
||||
'a' => [
|
||||
'b' => [
|
||||
'c' => 'd',
|
||||
],
|
||||
'e' => [
|
||||
'f' => 'g',
|
||||
],
|
||||
],
|
||||
'h' => 'i',
|
||||
'empty' => '',
|
||||
'null' => null,
|
||||
'false' => false,
|
||||
];
|
||||
|
||||
$this->assertEquals('X9EkmOEbA5CoF2Hicf3ciAumpp1zkKxnVZkh/mEwWyF2DDcrfou9XF11WvbBu3G4loJGeX4GY1FsIrQpsjEILbn0e7Alyii/x8VA9mBwdqMhQVl49jF0pdowocc03M04cAbAOMNObT7tMmDs+YTFgRxEGCiUkq9AizP1cW3+eBo=', $signature->sign($uri, $parameters));
|
||||
}
|
||||
|
||||
protected function invokeQueryStringFromData(array $args)
|
||||
{
|
||||
$signature = new RsaSha1Signature(Mockery::mock(ClientCredentialsInterface::class));
|
||||
$refl = new \ReflectionObject($signature);
|
||||
$method = $refl->getMethod('queryStringFromData');
|
||||
$method->setAccessible(true);
|
||||
|
||||
return $method->invokeArgs($signature, [$args]);
|
||||
}
|
||||
|
||||
protected function getClientCredentials()
|
||||
{
|
||||
$credentials = new RsaClientCredentials();
|
||||
$credentials->setRsaPublicKey(__DIR__ . '/test_rsa_publickey.pem');
|
||||
$credentials->setRsaPrivateKey(__DIR__ . '/test_rsa_privatekey.pem');
|
||||
|
||||
return $credentials;
|
||||
}
|
||||
}
|
313
vendor/league/oauth1-client/tests/ServerTest.php
vendored
Normal file
313
vendor/league/oauth1-client/tests/ServerTest.php
vendored
Normal file
@ -0,0 +1,313 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use League\OAuth1\Client\Credentials\ClientCredentials;
|
||||
use League\OAuth1\Client\Credentials\RsaClientCredentials;
|
||||
use League\OAuth1\Client\Signature\RsaSha1Signature;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
class ServerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Setup resources and dependencies.
|
||||
*/
|
||||
public static function setUpBeforeClass(): void
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
require_once __DIR__ . '/stubs/ServerStub.php';
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testCreatingWithArray()
|
||||
{
|
||||
$server = new ServerStub($this->getMockClientCredentials());
|
||||
|
||||
$credentials = $server->getClientCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
|
||||
$this->assertEquals('myidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('mysecret', $credentials->getSecret());
|
||||
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
|
||||
}
|
||||
|
||||
public function testCreatingWithArrayRsa()
|
||||
{
|
||||
$config = [
|
||||
'identifier' => 'app_key',
|
||||
'secret' => 'secret',
|
||||
'callback_uri' => 'https://example.com/callback',
|
||||
'rsa_public_key' => __DIR__ . '/test_rsa_publickey.pem',
|
||||
'rsa_private_key' => __DIR__ . '/test_rsa_privatekey.pem',
|
||||
];
|
||||
$server = new ServerStub($config);
|
||||
|
||||
$credentials = $server->getClientCredentials();
|
||||
$this->assertInstanceOf(RsaClientCredentials::class, $credentials);
|
||||
|
||||
$signature = $server->getSignature();
|
||||
$this->assertInstanceOf(RsaSha1Signature::class, $signature);
|
||||
}
|
||||
|
||||
public function testCreatingWithObject()
|
||||
{
|
||||
$credentials = new ClientCredentials;
|
||||
$credentials->setIdentifier('myidentifier');
|
||||
$credentials->setSecret('mysecret');
|
||||
$credentials->setCallbackUri('http://app.dev/');
|
||||
|
||||
$server = new ServerStub($credentials);
|
||||
|
||||
$this->assertEquals($credentials, $server->getClientCredentials());
|
||||
}
|
||||
|
||||
public function testCreatingWithInvalidInput()
|
||||
{
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
new ServerStub(uniqid());
|
||||
}
|
||||
|
||||
public function testGettingTemporaryCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('http://www.example.com/temporary', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern
|
||||
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="'
|
||||
. preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock('stdClass'));
|
||||
$response->shouldReceive('getBody')
|
||||
->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
|
||||
|
||||
$credentials = $server->getTemporaryCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
|
||||
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrl()
|
||||
{
|
||||
$server = new ServerStub($this->getMockClientCredentials());
|
||||
|
||||
$expected = 'http://www.example.com/authorize?oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithOptions()
|
||||
{
|
||||
$server = new ServerStub($this->getMockClientCredentials());
|
||||
$expected = 'http://www.example.com/authorize?oauth_token=foo';
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo', ['oauth_token' => 'bar']));
|
||||
|
||||
$expected = 'http://www.example.com/authorize?test=bar&oauth_token=foo';
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo', ['test' => 'bar']));
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
|
||||
{
|
||||
$server = new ServerStub($this->getMockClientCredentials());
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
$server->getTokenCredentials($credentials, 'bar', 'verifier');
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('http://www.example.com/token', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
$body = $options['form_params'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
$me->assertFalse(isset($headers['User-Agent']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern
|
||||
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock('stdClass'));
|
||||
$response->shouldReceive('getBody')
|
||||
->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
|
||||
|
||||
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
|
||||
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentialsWithUserAgent()
|
||||
{
|
||||
$userAgent = 'FooBar';
|
||||
$server = m::mock('League\OAuth1\Client\Tests\ServerStub[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('http://www.example.com/token', m::on(function ($options) use ($me, $userAgent) {
|
||||
$headers = $options['headers'];
|
||||
$body = $options['form_params'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
$me->assertTrue(isset($headers['User-Agent']));
|
||||
$me->assertEquals($userAgent, $headers['User-Agent']);
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern
|
||||
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock('stdClass'));
|
||||
$response->shouldReceive('getBody')
|
||||
->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
|
||||
|
||||
$credentials = $server->setUserAgent($userAgent)
|
||||
->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
|
||||
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingUserDetails()
|
||||
{
|
||||
$server = m::mock(
|
||||
'League\OAuth1\Client\Tests\ServerStub[createHttpClient,protocolHeader]',
|
||||
[$this->getMockClientCredentials()]
|
||||
);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('get')->with('http://www.example.com/user', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern
|
||||
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->once()->andReturn(json_encode([
|
||||
'foo' => 'bar',
|
||||
'id' => 123,
|
||||
'contact_email' => 'baz@qux.com',
|
||||
'username' => 'fred',
|
||||
]));
|
||||
|
||||
$user = $server->getUserDetails($temporaryCredentials);
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
|
||||
$this->assertEquals('bar', $user->firstName);
|
||||
$this->assertEquals(123, $server->getUserUid($temporaryCredentials));
|
||||
$this->assertEquals('baz@qux.com', $server->getUserEmail($temporaryCredentials));
|
||||
$this->assertEquals('fred', $server->getUserScreenName($temporaryCredentials));
|
||||
}
|
||||
|
||||
public function testGettingHeaders()
|
||||
{
|
||||
$server = new ServerStub($this->getMockClientCredentials());
|
||||
|
||||
$tokenCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
|
||||
$tokenCredentials->shouldReceive('getIdentifier')->andReturn('mock_identifier');
|
||||
$tokenCredentials->shouldReceive('getSecret')->andReturn('mock_secret');
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern
|
||||
= '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="mock_identifier", oauth_signature=".*?"/';
|
||||
|
||||
// With a GET request
|
||||
$headers = $server->getHeaders($tokenCredentials, 'GET', 'http://example.com/');
|
||||
$this->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$this->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
// With a POST request
|
||||
$headers = $server->getHeaders($tokenCredentials, 'POST', 'http://example.com/', ['body' => 'params']);
|
||||
$this->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$this->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
}
|
||||
|
||||
protected function getMockClientCredentials()
|
||||
{
|
||||
return [
|
||||
'identifier' => 'myidentifier',
|
||||
'secret' => 'mysecret',
|
||||
'callback_uri' => 'http://app.dev/',
|
||||
];
|
||||
}
|
||||
}
|
349
vendor/league/oauth1-client/tests/TrelloServerTest.php
vendored
Normal file
349
vendor/league/oauth1-client/tests/TrelloServerTest.php
vendored
Normal file
@ -0,0 +1,349 @@
|
||||
<?php namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use League\OAuth1\Client\Credentials\ClientCredentials;
|
||||
use League\OAuth1\Client\Server\Trello;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
class TrelloTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testCreatingWithArray()
|
||||
{
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
|
||||
$credentials = $server->getClientCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
|
||||
$this->assertEquals($this->getApplicationKey(), $credentials->getIdentifier());
|
||||
$this->assertEquals('mysecret', $credentials->getSecret());
|
||||
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
|
||||
}
|
||||
|
||||
public function testCreatingWithObject()
|
||||
{
|
||||
$credentials = new ClientCredentials;
|
||||
$credentials->setIdentifier('myidentifier');
|
||||
$credentials->setSecret('mysecret');
|
||||
$credentials->setCallbackUri('http://app.dev/');
|
||||
|
||||
$server = new Trello($credentials);
|
||||
|
||||
$this->assertEquals($credentials, $server->getClientCredentials());
|
||||
}
|
||||
|
||||
public function testGettingTemporaryCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('https://trello.com/1/OAuthGetRequestToken', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="' . preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
|
||||
|
||||
$credentials = $server->getTemporaryCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
|
||||
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingDefaultAuthorizationUrl()
|
||||
{
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithExpirationAfterConstructingWithExpiration()
|
||||
{
|
||||
$credentials = $this->getMockClientCredentials();
|
||||
$expiration = $this->getApplicationExpiration(2);
|
||||
$credentials['expiration'] = $expiration;
|
||||
$server = new Trello($credentials);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=' . urlencode($expiration) . '&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithExpirationAfterSettingExpiration()
|
||||
{
|
||||
$expiration = $this->getApplicationExpiration(2);
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
$server->setApplicationExpiration($expiration);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=' . urlencode($expiration) . '&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithNameAfterConstructingWithName()
|
||||
{
|
||||
$credentials = $this->getMockClientCredentials();
|
||||
$name = $this->getApplicationName();
|
||||
$credentials['name'] = $name;
|
||||
$server = new Trello($credentials);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&name=' . urlencode($name) . '&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithNameAfterSettingName()
|
||||
{
|
||||
$name = $this->getApplicationName();
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
$server->setApplicationName($name);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=read&expiration=1day&name=' . urlencode($name) . '&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithScopeAfterConstructingWithScope()
|
||||
{
|
||||
$credentials = $this->getMockClientCredentials();
|
||||
$scope = $this->getApplicationScope(false);
|
||||
$credentials['scope'] = $scope;
|
||||
$server = new Trello($credentials);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=' . urlencode($scope) . '&expiration=1day&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingAuthorizationUrlWithScopeAfterSettingScope()
|
||||
{
|
||||
$scope = $this->getApplicationScope(false);
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
$server->setApplicationScope($scope);
|
||||
|
||||
$expected = 'https://trello.com/1/OAuthAuthorizeToken?response_type=fragment&scope=' . urlencode($scope) . '&expiration=1day&oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
|
||||
{
|
||||
$server = new Trello($this->getMockClientCredentials());
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
$server->getTokenCredentials($credentials, 'bar', 'verifier');
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('https://trello.com/1/OAuthGetAccessToken', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
$body = $options['form_params'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
|
||||
|
||||
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
|
||||
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingUserDetails()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Trello[createHttpClient,protocolHeader]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('get')->with('https://trello.com/1/members/me?key=' . $this->getApplicationKey() . '&token=' . $this->getAccessToken(), m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->once()->andReturn($this->getUserPayload());
|
||||
|
||||
$user = $server
|
||||
->setAccessToken($this->getAccessToken())
|
||||
->getUserDetails($temporaryCredentials);
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
|
||||
$this->assertEquals('Matilda Wormwood', $user->name);
|
||||
$this->assertEquals('545df696e29c0dddaed31967', $server->getUserUid($temporaryCredentials));
|
||||
$this->assertEquals(null, $server->getUserEmail($temporaryCredentials));
|
||||
$this->assertEquals('matildawormwood12', $server->getUserScreenName($temporaryCredentials));
|
||||
}
|
||||
|
||||
protected function getMockClientCredentials()
|
||||
{
|
||||
return [
|
||||
'identifier' => $this->getApplicationKey(),
|
||||
'secret' => 'mysecret',
|
||||
'callback_uri' => 'http://app.dev/',
|
||||
];
|
||||
}
|
||||
|
||||
protected function getAccessToken()
|
||||
{
|
||||
return 'lmnopqrstuvwxyz';
|
||||
}
|
||||
|
||||
protected function getApplicationKey()
|
||||
{
|
||||
return 'abcdefghijk';
|
||||
}
|
||||
|
||||
protected function getApplicationExpiration($days = 0)
|
||||
{
|
||||
return is_numeric($days) && $days > 0 ? $days . 'day' . ($days == 1 ? '' : 's') : 'never';
|
||||
}
|
||||
|
||||
protected function getApplicationName()
|
||||
{
|
||||
return 'fizz buzz';
|
||||
}
|
||||
|
||||
protected function getApplicationScope($readonly = true)
|
||||
{
|
||||
return $readonly ? 'read' : 'read,write';
|
||||
}
|
||||
|
||||
private function getUserPayload()
|
||||
{
|
||||
return '{
|
||||
"id": "545df696e29c0dddaed31967",
|
||||
"avatarHash": null,
|
||||
"bio": "I have magical powers",
|
||||
"bioData": null,
|
||||
"confirmed": true,
|
||||
"fullName": "Matilda Wormwood",
|
||||
"idPremOrgsAdmin": [],
|
||||
"initials": "MW",
|
||||
"memberType": "normal",
|
||||
"products": [],
|
||||
"status": "idle",
|
||||
"url": "https://trello.com/matildawormwood12",
|
||||
"username": "matildawormwood12",
|
||||
"avatarSource": "none",
|
||||
"email": null,
|
||||
"gravatarHash": "39aaaada0224f26f0bb8f1965326dcb7",
|
||||
"idBoards": [
|
||||
"545df696e29c0dddaed31968",
|
||||
"545e01d6c7b2dd962b5b46cb"
|
||||
],
|
||||
"idOrganizations": [
|
||||
"54adfd79f9aea14f84009a85",
|
||||
"54adfde13b0e706947bc4789"
|
||||
],
|
||||
"loginTypes": null,
|
||||
"oneTimeMessagesDismissed": [],
|
||||
"prefs": {
|
||||
"sendSummaries": true,
|
||||
"minutesBetweenSummaries": 1,
|
||||
"minutesBeforeDeadlineToNotify": 1440,
|
||||
"colorBlind": false,
|
||||
"timezoneInfo": {
|
||||
"timezoneNext": "CDT",
|
||||
"dateNext": "2015-03-08T08:00:00.000Z",
|
||||
"offsetNext": 300,
|
||||
"timezoneCurrent": "CST",
|
||||
"offsetCurrent": 360
|
||||
}
|
||||
},
|
||||
"trophies": [],
|
||||
"uploadedAvatarHash": null,
|
||||
"premiumFeatures": [],
|
||||
"idBoardsPinned": null
|
||||
}';
|
||||
}
|
||||
}
|
255
vendor/league/oauth1-client/tests/XingServerTest.php
vendored
Normal file
255
vendor/league/oauth1-client/tests/XingServerTest.php
vendored
Normal file
@ -0,0 +1,255 @@
|
||||
<?php namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use League\OAuth1\Client\Credentials\ClientCredentials;
|
||||
use League\OAuth1\Client\Server\Xing;
|
||||
use Mockery as m;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
class XingTest extends TestCase
|
||||
{
|
||||
protected function tearDown(): void
|
||||
{
|
||||
m::close();
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testCreatingWithArray()
|
||||
{
|
||||
$server = new Xing($this->getMockClientCredentials());
|
||||
|
||||
$credentials = $server->getClientCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\ClientCredentialsInterface', $credentials);
|
||||
$this->assertEquals($this->getApplicationKey(), $credentials->getIdentifier());
|
||||
$this->assertEquals('mysecret', $credentials->getSecret());
|
||||
$this->assertEquals('http://app.dev/', $credentials->getCallbackUri());
|
||||
}
|
||||
|
||||
public function testCreatingWithObject()
|
||||
{
|
||||
$credentials = new ClientCredentials;
|
||||
$credentials->setIdentifier('myidentifier');
|
||||
$credentials->setSecret('mysecret');
|
||||
$credentials->setCallbackUri('http://app.dev/');
|
||||
|
||||
$server = new Xing($credentials);
|
||||
|
||||
$this->assertEquals($credentials, $server->getClientCredentials());
|
||||
}
|
||||
|
||||
public function testGettingTemporaryCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('https://api.xing.com/v1/request_token', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_callback="' . preg_quote('http%3A%2F%2Fapp.dev%2F', '/') . '", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->andReturn('oauth_token=temporarycredentialsidentifier&oauth_token_secret=temporarycredentialssecret&oauth_callback_confirmed=true');
|
||||
|
||||
$credentials = $server->getTemporaryCredentials();
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TemporaryCredentials', $credentials);
|
||||
$this->assertEquals('temporarycredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('temporarycredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingDefaultAuthorizationUrl()
|
||||
{
|
||||
$server = new Xing($this->getMockClientCredentials());
|
||||
|
||||
$expected = 'https://api.xing.com/v1/authorize?oauth_token=foo';
|
||||
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl('foo'));
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
$this->assertEquals($expected, $server->getAuthorizationUrl($credentials));
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentialsFailsWithManInTheMiddle()
|
||||
{
|
||||
$server = new Xing($this->getMockClientCredentials());
|
||||
|
||||
$credentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$credentials->shouldReceive('getIdentifier')->andReturn('foo');
|
||||
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
$server->getTokenCredentials($credentials, 'bar', 'verifier');
|
||||
}
|
||||
|
||||
public function testGettingTokenCredentials()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TemporaryCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('temporarycredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('temporarycredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('post')->with('https://api.xing.com/v1/access_token', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
$body = $options['form_params'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="temporarycredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
$me->assertSame($body, ['oauth_verifier' => 'myverifiercode']);
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->andReturn('oauth_token=tokencredentialsidentifier&oauth_token_secret=tokencredentialssecret');
|
||||
|
||||
$credentials = $server->getTokenCredentials($temporaryCredentials, 'temporarycredentialsidentifier', 'myverifiercode');
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Credentials\TokenCredentials', $credentials);
|
||||
$this->assertEquals('tokencredentialsidentifier', $credentials->getIdentifier());
|
||||
$this->assertEquals('tokencredentialssecret', $credentials->getSecret());
|
||||
}
|
||||
|
||||
public function testGettingUserDetails()
|
||||
{
|
||||
$server = m::mock('League\OAuth1\Client\Server\Xing[createHttpClient,protocolHeader]', [$this->getMockClientCredentials()]);
|
||||
|
||||
$temporaryCredentials = m::mock('League\OAuth1\Client\Credentials\TokenCredentials');
|
||||
$temporaryCredentials->shouldReceive('getIdentifier')->andReturn('tokencredentialsidentifier');
|
||||
$temporaryCredentials->shouldReceive('getSecret')->andReturn('tokencredentialssecret');
|
||||
|
||||
$server->shouldReceive('createHttpClient')->andReturn($client = m::mock('stdClass'));
|
||||
|
||||
$me = $this;
|
||||
$client->shouldReceive('get')->with('https://api.xing.com/v1/users/me', m::on(function ($options) use ($me) {
|
||||
$headers = $options['headers'];
|
||||
|
||||
$me->assertTrue(isset($headers['Authorization']));
|
||||
|
||||
// OAuth protocol specifies a strict number of
|
||||
// headers should be sent, in the correct order.
|
||||
// We'll validate that here.
|
||||
$pattern = '/OAuth oauth_consumer_key=".*?", oauth_nonce="[a-zA-Z0-9]+", oauth_signature_method="HMAC-SHA1", oauth_timestamp="\d{10}", oauth_version="1.0", oauth_token="tokencredentialsidentifier", oauth_signature=".*?"/';
|
||||
|
||||
$matches = preg_match($pattern, $headers['Authorization']);
|
||||
$me->assertEquals(1, $matches, 'Asserting that the authorization header contains the correct expression.');
|
||||
|
||||
return true;
|
||||
}))->once()->andReturn($response = m::mock(ResponseInterface::class));
|
||||
$response->shouldReceive('getBody')->once()->andReturn($this->getUserPayload());
|
||||
|
||||
$user = $server->getUserDetails($temporaryCredentials);
|
||||
$this->assertInstanceOf('League\OAuth1\Client\Server\User', $user);
|
||||
$this->assertEquals('Roman Gelembjuk', $user->name);
|
||||
$this->assertEquals('17144430_0f9409', $server->getUserUid($temporaryCredentials));
|
||||
$this->assertEquals('XXXXXXXXXX@gmail.com', $server->getUserEmail($temporaryCredentials));
|
||||
$this->assertEquals('Roman Gelembjuk', $server->getUserScreenName($temporaryCredentials));
|
||||
}
|
||||
|
||||
protected function getMockClientCredentials()
|
||||
{
|
||||
return [
|
||||
'identifier' => $this->getApplicationKey(),
|
||||
'secret' => 'mysecret',
|
||||
'callback_uri' => 'http://app.dev/',
|
||||
];
|
||||
}
|
||||
|
||||
protected function getApplicationKey()
|
||||
{
|
||||
return 'abcdefghijk';
|
||||
}
|
||||
|
||||
protected function getApplicationExpiration($days = 0)
|
||||
{
|
||||
return is_numeric($days) && $days > 0 ? $days . 'day' . ($days == 1 ? '' : 's') : 'never';
|
||||
}
|
||||
|
||||
protected function getApplicationName()
|
||||
{
|
||||
return 'fizz buzz';
|
||||
}
|
||||
|
||||
private function getUserPayload()
|
||||
{
|
||||
return '{
|
||||
"users":[
|
||||
{
|
||||
"id":"17144430_0f9409",
|
||||
"active_email":"XXXXXXXXXX@gmail.com",
|
||||
"time_zone":
|
||||
{
|
||||
"utc_offset":3.0,
|
||||
"name":"Europe/Kiev"
|
||||
},
|
||||
"display_name":"Roman Gelembjuk",
|
||||
"first_name":"Roman",
|
||||
"last_name":"Gelembjuk",
|
||||
"gender":"m",
|
||||
"page_name":"Roman_Gelembjuk",
|
||||
"birth_date":
|
||||
{"year":null,"month":null,"day":null},
|
||||
"wants":null,
|
||||
"haves":null,
|
||||
"interests":null,
|
||||
"web_profiles":{},
|
||||
"badges":[],
|
||||
"photo_urls":
|
||||
{
|
||||
"large":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.140x185.jpg",
|
||||
"maxi_thumb":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.70x93.jpg",
|
||||
"medium_thumb":"https://x1.xingassets.com/assets/frontend_minified/img/users/nobody_m.57x75.jpg"
|
||||
},
|
||||
"permalink":"https://www.xing.com/profile/Roman_Gelembjuk",
|
||||
"languages":{"en":null},
|
||||
"employment_status":"EMPLOYEE",
|
||||
"organisation_member":null,
|
||||
"instant_messaging_accounts":{},
|
||||
"educational_background":
|
||||
{"degree":null,"primary_school":null,"schools":[],"qualifications":[]},
|
||||
"private_address":{
|
||||
"street":null,
|
||||
"zip_code":null,
|
||||
"city":null,
|
||||
"province":null,
|
||||
"country":null,
|
||||
"email":"XXXXXXXX@gmail.com",
|
||||
"fax":null,
|
||||
"phone":null,
|
||||
"mobile_phone":null}
|
||||
,"business_address":
|
||||
{
|
||||
"street":null,
|
||||
"zip_code":null,
|
||||
"city":"Ivano-Frankivsk",
|
||||
"province":null,
|
||||
"country":"UA",
|
||||
"email":null,
|
||||
"fax":null,"phone":null,"mobile_phone":null
|
||||
},
|
||||
"premium_services":[]
|
||||
}]}';
|
||||
}
|
||||
}
|
77
vendor/league/oauth1-client/tests/stubs/ServerStub.php
vendored
Normal file
77
vendor/league/oauth1-client/tests/stubs/ServerStub.php
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace League\OAuth1\Client\Tests;
|
||||
|
||||
use League\OAuth1\Client\Credentials\TokenCredentials;
|
||||
use League\OAuth1\Client\Server\Server;
|
||||
use League\OAuth1\Client\Server\User;
|
||||
|
||||
class ServerStub extends Server
|
||||
{
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function urlTemporaryCredentials()
|
||||
{
|
||||
return 'http://www.example.com/temporary';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function urlAuthorization()
|
||||
{
|
||||
return 'http://www.example.com/authorize';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function urlTokenCredentials()
|
||||
{
|
||||
return 'http://www.example.com/token';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function urlUserDetails()
|
||||
{
|
||||
return 'http://www.example.com/user';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function userDetails($data, TokenCredentials $tokenCredentials)
|
||||
{
|
||||
$user = new User;
|
||||
$user->firstName = $data['foo'];
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function userUid($data, TokenCredentials $tokenCredentials)
|
||||
{
|
||||
return isset($data['id']) ? $data['id'] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function userEmail($data, TokenCredentials $tokenCredentials)
|
||||
{
|
||||
return isset($data['contact_email']) ? $data['contact_email'] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function userScreenName($data, TokenCredentials $tokenCredentials)
|
||||
{
|
||||
return isset($data['username']) ? $data['username'] : null;
|
||||
}
|
||||
}
|
1
vendor/league/oauth1-client/tests/test_rsa_invalidkey.pem
vendored
Normal file
1
vendor/league/oauth1-client/tests/test_rsa_invalidkey.pem
vendored
Normal file
@ -0,0 +1 @@
|
||||
not a valid RSA key
|
15
vendor/league/oauth1-client/tests/test_rsa_privatekey.pem
vendored
Normal file
15
vendor/league/oauth1-client/tests/test_rsa_privatekey.pem
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQDJScPCpHHPakw9v4nhxi+cBumCml3WpMNDaE3Cxnkf6HALzoi8
|
||||
fQPx3XRfKSoLG6b7uTG+vDoLCL49ZCyYwrnggsFF08bJMqIhUHlZrkiyT5UhdTIh
|
||||
XEEFfb6XmieHNtra+ur8E3PVal4PEdOCEmJehBMJkiCsxNOJ/kCeYSMdbQIDAQAB
|
||||
AoGAMo7JkcEWKP/NCJFsg33xBWKjEj/NpBUcSnkPVwXc9IvAYObOZ3GLJRv3l9NS
|
||||
ERov9fgNK5hBh/X5OphHr1LxtqU5gAFYx5Qgt/WG3ZH9KScXkaPS3Oq2qK9krbA2
|
||||
BXYKP4NEqhjJTecy7M8bju5+lsjteyqVSsVLHdLhUfPRbE0CQQDyYP6iChqZm1AK
|
||||
A8x8PKvJsd4zSdxWXUYSmD7mAtek5VeWblbcXYYdeYPN6hNmqzaLelmrZI51x1Uf
|
||||
hf1ryIfrAkEA1JmdSsNuxi9MOY3HqErWYsqZ//mVOxVyCAwf7OWQ0rTHEQBhQwpS
|
||||
9nk0YFHI9t6nVUwXrZ7/7UJPTu8OjPKyBwJAYw2OomwcqM/XKvCYfeFRl1DwbOdv
|
||||
e4AM5gaAFgHtXP85B0o6hz5VU/BYFCvoF9o6pU+wG6IxsiJvQD3C7mx6VwJAbXYW
|
||||
PVs4WsQZe/ya0vSNQ1pLRjdr9XrKNoh/m4prMYGwiPloGotjQdIP/JO/ZBQplcpS
|
||||
2qrl3HPqv5poJHwE2wJBAM37BVINHR0zcSHfFLmSYrqmLx2oC3UAB3exmpYSUgOz
|
||||
wJqPfmPWuuXuu6h0Z2DazUan+2EiecX6C4ywkm+qk1I=
|
||||
-----END RSA PRIVATE KEY-----
|
19
vendor/league/oauth1-client/tests/test_rsa_publickey.pem
vendored
Normal file
19
vendor/league/oauth1-client/tests/test_rsa_publickey.pem
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDEDCCAnmgAwIBAgIJAMhMVuHMz+EgMA0GCSqGSIb3DQEBBQUAMGQxCzAJBgNV
|
||||
BAYTAlVTMQswCQYDVQQIEwJUWDEPMA0GA1UEBxMGQXVzdGluMSEwHwYDVQQKExhJ
|
||||
bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMTC2V4YW1wbGUuY29tMB4X
|
||||
DTE2MTEwMjIxMDUzNVoXDTIxMTEwMTIxMDUzNVowZDELMAkGA1UEBhMCVVMxCzAJ
|
||||
BgNVBAgTAlRYMQ8wDQYDVQQHEwZBdXN0aW4xITAfBgNVBAoTGEludGVybmV0IFdp
|
||||
ZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAxMLZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcN
|
||||
AQEBBQADgY0AMIGJAoGBAMlJw8Kkcc9qTD2/ieHGL5wG6YKaXdakw0NoTcLGeR/o
|
||||
cAvOiLx9A/HddF8pKgsbpvu5Mb68OgsIvj1kLJjCueCCwUXTxskyoiFQeVmuSLJP
|
||||
lSF1MiFcQQV9vpeaJ4c22tr66vwTc9VqXg8R04ISYl6EEwmSIKzE04n+QJ5hIx1t
|
||||
AgMBAAGjgckwgcYwHQYDVR0OBBYEFLYKQbsK2oqRO83NbNXC2R6MkNcRMIGWBgNV
|
||||
HSMEgY4wgYuAFLYKQbsK2oqRO83NbNXC2R6MkNcRoWikZjBkMQswCQYDVQQGEwJV
|
||||
UzELMAkGA1UECBMCVFgxDzANBgNVBAcTBkF1c3RpbjEhMB8GA1UEChMYSW50ZXJu
|
||||
ZXQgV2lkZ2l0cyBQdHkgTHRkMRQwEgYDVQQDEwtleGFtcGxlLmNvbYIJAMhMVuHM
|
||||
z+EgMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEASwEwGQnRCqcNrb6k
|
||||
g6/xpeyHE9/ruTBIE4dtArQI0NosaERC3i4nRKbgfJfIuYEaYiga4dC51CQqKrbH
|
||||
YZ0dgYMzzp21OMQyKdz3E7csMJv5xxe5D2svdPzbBGU5+N80FYLx17f3UqsYFaAC
|
||||
X0/YTQsdlM5tHZOd1ZbQUrERqLs=
|
||||
-----END CERTIFICATE-----
|
0
vendor/mtdowling/jmespath.php/bin/jp.php
vendored
Normal file → Executable file
0
vendor/mtdowling/jmespath.php/bin/jp.php
vendored
Normal file → Executable file
0
vendor/mtdowling/jmespath.php/bin/perf.php
vendored
Normal file → Executable file
0
vendor/mtdowling/jmespath.php/bin/perf.php
vendored
Normal file → Executable file
39
vendor/mtdowling/jmespath.php/composer.json
vendored
Normal file
39
vendor/mtdowling/jmespath.php/composer.json
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "mtdowling/jmespath.php",
|
||||
"description": "Declaratively specify how to extract elements from a JSON document",
|
||||
"keywords": ["json", "jsonpath"],
|
||||
"license": "MIT",
|
||||
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
|
||||
"require": {
|
||||
"php": "^5.4 || ^7.0 || ^8.0",
|
||||
"symfony/polyfill-mbstring": "^1.17"
|
||||
},
|
||||
|
||||
"require-dev": {
|
||||
"composer/xdebug-handler": "^1.4",
|
||||
"phpunit/phpunit": "^4.8.36 || ^7.5.15"
|
||||
},
|
||||
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"JmesPath\\": "src/"
|
||||
},
|
||||
"files": ["src/JmesPath.php"]
|
||||
},
|
||||
|
||||
"bin": ["bin/jp.php"],
|
||||
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6-dev"
|
||||
}
|
||||
}
|
||||
}
|
3
vendor/psr/container/.gitignore
vendored
Normal file
3
vendor/psr/container/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
composer.lock
|
||||
composer.phar
|
||||
/vendor/
|
22
vendor/psr/container/composer.json
vendored
Normal file
22
vendor/psr/container/composer.json
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "psr/container",
|
||||
"type": "library",
|
||||
"description": "Common Container Interface (PHP FIG PSR-11)",
|
||||
"keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"],
|
||||
"homepage": "https://github.com/php-fig/container",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.2.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Container\\": "src/"
|
||||
}
|
||||
}
|
||||
}
|
26
vendor/psr/http-message/composer.json
vendored
Normal file
26
vendor/psr/http-message/composer.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"description": "Common interface for HTTP messages",
|
||||
"keywords": ["psr", "psr-7", "http", "http-message", "request", "response"],
|
||||
"homepage": "https://github.com/php-fig/http-message",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
26
vendor/psr/log/composer.json
vendored
Normal file
26
vendor/psr/log/composer.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "psr/log",
|
||||
"description": "Common interface for logging libraries",
|
||||
"keywords": ["psr", "psr-3", "log"],
|
||||
"homepage": "https://github.com/php-fig/log",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
5
vendor/swiss-payment-slip/swiss-payment-slip/.stickler.yml
vendored
Normal file
5
vendor/swiss-payment-slip/swiss-payment-slip/.stickler.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
linters:
|
||||
phpcs:
|
||||
standard: PSR2
|
||||
extensions: '.php,.ctp'
|
||||
tab_width: 4
|
63
vendor/swiss-payment-slip/swiss-payment-slip/composer.json
vendored
Normal file
63
vendor/swiss-payment-slip/swiss-payment-slip/composer.json
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"name": "swiss-payment-slip/swiss-payment-slip",
|
||||
"description": "A library for creating Swiss payment slips (ESR)",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/ravage84/SwissPaymentSlip",
|
||||
"keywords": [
|
||||
"Payment slip",
|
||||
"Inpayment slip",
|
||||
"Einzahlungsschein",
|
||||
"ESR"
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0.0",
|
||||
"squizlabs/php_codesniffer": "^2.1.0"
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marc Würth",
|
||||
"email": "ravage@bluewin.ch",
|
||||
"role": "Lead developer"
|
||||
},
|
||||
{
|
||||
"name": "Manuel Reinhard",
|
||||
"email": "manu@sprain.ch",
|
||||
"homepage": "http://www.sprain.ch",
|
||||
"role": "Developer of the original class"
|
||||
},
|
||||
{
|
||||
"name": "Peter Siska",
|
||||
"email": "pesche@gridonic.ch",
|
||||
"homepage": "http://www.gridonic.ch",
|
||||
"role": "Contributor"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"email": "ravage@bluewin.ch",
|
||||
"issues": "https://github.com/ravage84/SwissPaymentSlip/issues",
|
||||
"source": "https://github.com/ravage84/SwissPaymentSlip"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SwissPaymentSlip\\SwissPaymentSlip\\": "src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"SwissPaymentSlip\\SwissPaymentSlip\\Tests\\": "tests"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": "phpunit",
|
||||
"check-codestyle": "phpcs -p --standard=PSR2 --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests examples",
|
||||
"fix-codestyle": "phpcbf -p --standard=PSR2 --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests examples"
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.4.0"
|
||||
}
|
||||
}
|
||||
}
|
1064
vendor/swiss-payment-slip/swiss-payment-slip/composer.lock
generated
vendored
Normal file
1064
vendor/swiss-payment-slip/swiss-payment-slip/composer.lock
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
44
vendor/symfony/polyfill-intl-idn/composer.json
vendored
Normal file
44
vendor/symfony/polyfill-intl-idn/composer.json
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"type": "library",
|
||||
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
|
||||
"keywords": ["polyfill", "shim", "compatibility", "portable", "intl", "idn"],
|
||||
"homepage": "https://symfony.com",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Laurent Bassin",
|
||||
"email": "laurent@bassin.info"
|
||||
},
|
||||
{
|
||||
"name": "Trevor Rowbotham",
|
||||
"email": "trevor.rowbotham@pm.me"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"symfony/polyfill-intl-normalizer": "^1.10",
|
||||
"symfony/polyfill-php72": "^1.10"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" },
|
||||
"files": [ "bootstrap.php" ]
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "For best performance"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
}
|
||||
}
|
@ -323,50 +323,6 @@ class erpooSystem extends Application
|
||||
}
|
||||
}
|
||||
|
||||
$isTestlizenz = !empty(erpAPI::Ioncube_Property('testlizenz'));
|
||||
$isCloud = erpAPI::Ioncube_Property('iscloud');
|
||||
$isDemo = $isTestlizenz && $isCloud;
|
||||
$activateDoubleClick = false;
|
||||
/** @var Dataprotection $dataProtectionModule */
|
||||
$dataProtectionModule = $this->loadModule('dataprotection');
|
||||
|
||||
if($isCloud
|
||||
&& $dataProtectionModule !== null
|
||||
&& $dataProtectionModule->isGoogleAnalyticsActive()
|
||||
){
|
||||
$activateDoubleClick = true;
|
||||
$this->Tpl->Add(
|
||||
'SCRIPTJAVASCRIPT',
|
||||
'<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-1088253-14"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag(\'js\', new Date());
|
||||
|
||||
gtag(\'config\', \'UA-1088253-14\');
|
||||
</script>');
|
||||
|
||||
$this->Tpl->Add('ADDITIONALCSPHEADER', ' www.googletagmanager.com www.google-analytics.com ssl.google-analytics.com stats.g.doubleclick.net ');
|
||||
}
|
||||
if($dataProtectionModule !== null && $dataProtectionModule->isHubspotActive()) {
|
||||
$activateDoubleClick = true;
|
||||
$this->Tpl->Add(
|
||||
'SCRIPTJAVASCRIPT',
|
||||
'<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/6748263.js"></script>'
|
||||
);
|
||||
$this->Tpl->Add(
|
||||
'ADDITIONALCSPHEADER',
|
||||
' js.hs-scripts.com js.hscollectedforms.net js.hsleadflows.net js.hs-banner.com js.hs-analytics.net api.hubapi.com js.hsadspixel.net '
|
||||
);
|
||||
$this->Tpl->Add(
|
||||
'ADDITIONALCSPHEADER',
|
||||
'forms.hubspot.com forms.hsforms.com track.hubspot.com www.google.com www.google.de '
|
||||
);
|
||||
}
|
||||
if($activateDoubleClick) {
|
||||
$this->Tpl->Add('ADDITIONALCSPHEADER', ' googleads.g.doubleclick.net ' );
|
||||
}
|
||||
$hooktpl = 'JSSCRIPTS';
|
||||
$this->erp->RunHook('eproosystem_ende', 1, $hooktpl);
|
||||
}
|
||||
@ -468,13 +424,6 @@ class erpooSystem extends Application
|
||||
];*/
|
||||
|
||||
|
||||
if(!empty(erpAPI::Ioncube_Property('testlizenz')) && $this->User->GetType() === 'admin'){
|
||||
$possibleUserItems['Starte hier!'] = [
|
||||
'link' => 'index.php?module=learningdashboard&action=list',
|
||||
'type' => 'cta'
|
||||
];
|
||||
}
|
||||
|
||||
$userItems = '<div class="sidebar-list small-items separator-bottom">';
|
||||
|
||||
foreach($possibleUserItems as $title => $data){
|
||||
@ -545,10 +494,7 @@ class erpooSystem extends Application
|
||||
|
||||
/** @var Dataprotection $obj */
|
||||
$obj = $this->loadModule('dataprotection');
|
||||
$showChat = method_exists('erpAPI','Ioncube_Property')
|
||||
&& !empty(erpAPI::Ioncube_Property('chatactive'))
|
||||
&& !empty(erpAPI::Ioncube_Property('chat'))
|
||||
&& $obj !== null
|
||||
$showChat = $obj !== null
|
||||
&& method_exists($obj, 'isZenDeskActive')
|
||||
&& $obj->isZenDeskActive();
|
||||
|
||||
@ -608,23 +554,8 @@ class erpooSystem extends Application
|
||||
$this->Tpl->Set('FIXEDITEMS', $fixedItems);
|
||||
$this->Tpl->Set('XENTRALVERSION', $version);
|
||||
$this->Tpl->Set('SIDEBAR_CLASSES', $sidebarClasses);
|
||||
$isDevelopmentVersion = method_exists('erpAPI','Ioncube_Property')
|
||||
&& !empty(erpAPI::Ioncube_Property('isdevelopmentversion'));
|
||||
if($isDevelopmentVersion) {
|
||||
$this->Tpl->Add(
|
||||
'SIDEBARLOGO',
|
||||
@file_get_contents(__DIR__ . '/themes/new/templates/sidebar_development_version_logo.svg')
|
||||
);
|
||||
$this->Tpl->Add(
|
||||
'SIDEBARLOGO',
|
||||
'<img class="development" src="themes/new/templates/development_version_logo.png" alt="logo" />'
|
||||
);
|
||||
}
|
||||
else{
|
||||
// $this->Tpl->Add('SIDEBARLOGO', @file_get_contents(__DIR__ . '/themes/new/templates/sidebar_logo.svg'));
|
||||
$this->Tpl->Add('SIDEBARLOGO','<div class="sidebar_logo">'.@file_get_contents(__DIR__ . '/themes/new/templates/sidebar_logo.svg').'</div>');
|
||||
$this->Tpl->Add('SIDEBARLOGO','<div class="sidebar_icon_logo">'.@file_get_contents(__DIR__ . '/themes/new/templates/sidebar_icon_logo.svg').'</div>');
|
||||
}
|
||||
$this->Tpl->Add('SIDEBARLOGO','<div class="sidebar_logo">'.@file_get_contents(__DIR__ . '/themes/new/templates/sidebar_logo.svg').'</div>');
|
||||
$this->Tpl->Add('SIDEBARLOGO','<div class="sidebar_icon_logo">'.@file_get_contents(__DIR__ . '/themes/new/templates/sidebar_icon_logo.svg').'</div>');
|
||||
|
||||
$this->Tpl->Parse('SIDEBAR', 'sidebar.tpl');
|
||||
$this->Tpl->Parse('PROFILE_MENU', 'profile_menu.tpl');
|
||||
@ -1342,41 +1273,6 @@ if (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 an
|
||||
$this->erp->SetKonfigurationValue('eproosystem_skipcheckuserdata', '1');
|
||||
}
|
||||
}
|
||||
if(!$this->erp->ServerOK()) {
|
||||
$serverlist = $this->erp->GetIoncubeServerList();
|
||||
if(method_exists($this->erp, 'setSystemHealth')) {
|
||||
$this->erp->setSystemHealth(
|
||||
'server',
|
||||
'ioncube',
|
||||
'error',
|
||||
'Die Ioncube-Lizenz ist nur gültig für folgene'.
|
||||
(count($serverlist) == 1?'n':'').' Server: '.implode(', ',$serverlist)
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$expDays = erpAPI::Ioncube_ExpireInDays();
|
||||
$testLicence = erpAPI::Ioncube_Property('testlizenz');
|
||||
if(!$testLicence && $expDays !== false && $expDays < 14) {
|
||||
$this->erp->setSystemHealth(
|
||||
'server',
|
||||
'ioncube',
|
||||
'error',
|
||||
sprintf(
|
||||
'Die Lizenz am %s aus.',
|
||||
erpAPI::Ioncube_ExpireDate()
|
||||
)
|
||||
);
|
||||
}
|
||||
else{
|
||||
$this->erp->setSystemHealth(
|
||||
'server',
|
||||
'ioncube',
|
||||
'ok',
|
||||
''
|
||||
);
|
||||
}
|
||||
}
|
||||
if ($this->ModuleScriptCache->IsCacheDirWritable() === false) {
|
||||
$this->erp->setSystemHealth(
|
||||
'server',
|
||||
@ -1823,21 +1719,6 @@ if (typeof document.hidden !== \"undefined\") { // Opera 12.10 and Firefox 18 an
|
||||
$this->Tpl->Set('NACHCHATNACHRICHTENBOX','-->');
|
||||
}
|
||||
|
||||
if(!empty(erpAPI::Ioncube_Property('testlizenz'))){
|
||||
$upgradeButton = '<li id="upgrade-licence"><a href="./index.php?module=appstore&action=buy">'.
|
||||
'<svg width="18" height="16" viewBox="0 0 18 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.47287 12.0104C2.04566 9.80074 1.66708 6.11981 3.59372 3.46237C5.52036 0.804943 9.13654 0.0202146 11.9914 1.64005" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2.21273 11.9649C1.39377 13.3996 1.11966 14.513 1.58214 14.9761C2.2843 15.6776 4.48124 14.6858 7.02522 12.6684" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.93719 12.1581L7.52014 9.74109L12.8923 4.3689C13.3305 3.93091 13.8797 3.62049 14.481 3.47095L15.863 3.12392C16.0571 3.07558 16.2623 3.1325 16.4037 3.27392C16.5451 3.41534 16.602 3.62054 16.5537 3.8146L16.208 5.19732C16.0578 5.7984 15.7469 6.34731 15.3087 6.78527L9.93719 12.1581Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.51976 9.7409L5.54021 9.08128C5.44619 9.05019 5.37505 8.97252 5.35233 8.87613C5.32961 8.77974 5.35857 8.67847 5.42881 8.60867L6.11882 7.91866C6.7306 7.30697 7.63548 7.09343 8.45619 7.36706L9.53644 7.72625L7.51976 9.7409Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.93713 12.1584L10.5968 14.1386C10.6278 14.2326 10.7055 14.3038 10.8019 14.3265C10.8983 14.3492 10.9996 14.3203 11.0694 14.25L11.7594 13.56C12.3711 12.9482 12.5846 12.0434 12.311 11.2226L11.9518 10.1424L9.93713 12.1584Z" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
'.
|
||||
'<span>Upgrade</span></a></li>';
|
||||
|
||||
$this->Tpl->Set('UPGRADELICENCECTA', $upgradeButton);
|
||||
}
|
||||
|
||||
if(!$this->erp->ModulVorhanden('aufgaben') || !$this->erp->RechteVorhanden('aufgaben','list')) {
|
||||
$this->Tpl->Set('AUFGABENVOR','<!--');
|
||||
$this->Tpl->Set('AUFGABENNACH','-->');
|
||||
|
@ -1,156 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Xentral\Components\HttpClient\Exception\TransferErrorExceptionInterface;
|
||||
use Xentral\Components\HttpClient\HttpClient;
|
||||
use Xentral\Components\HttpClient\RequestOptions;
|
||||
use Xentral\Modules\GoogleApi\Exception\GoogleAccountNotFoundException;
|
||||
use Xentral\Modules\GoogleApi\Service\GoogleAccountGateway;
|
||||
use Xentral\Modules\GoogleApi\Service\GoogleAuthorizationService;
|
||||
|
||||
class PrinterGoogleCloudPrint extends PrinterBase
|
||||
{
|
||||
/** @var string */
|
||||
private $url = 'https://www.google.com/cloudprint/';
|
||||
|
||||
/** @var string URL_SEARCH */
|
||||
private const URL_SEARCH = 'https://www.google.com/cloudprint/search';
|
||||
|
||||
/** @var string URL_PRINT */
|
||||
private const URL_PRINT = 'https://www.google.com/cloudprint/submit';
|
||||
|
||||
/** @var string */
|
||||
private const URL_JOBS = 'https://www.google.com/cloudprint/jobs';
|
||||
|
||||
/** @var string */
|
||||
private const URL_PRINTER = 'https://www.google.com/cloudprint/printer';
|
||||
|
||||
/** @var HttpClient $client */
|
||||
private $client;
|
||||
|
||||
/**
|
||||
* PrinterGoogleCloudPrint constructor.
|
||||
*
|
||||
* @param Application $app
|
||||
* @param int $id
|
||||
*/
|
||||
public function __construct($app, $id)
|
||||
{
|
||||
parent::__construct($app, $id);
|
||||
$token = $this->getAuthToken();
|
||||
$options = new RequestOptions();
|
||||
$options->setHeader('Authorization', sprintf('Bearer %s', $token));
|
||||
$this->client = new HttpClient($options);
|
||||
$this->app->ModuleScriptCache->IncludeJavascriptFiles(
|
||||
'drucker',
|
||||
['./classes/Modules/GoogleCloudPrint/www/js/PrinterGoogleCloudPrint.js']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function getName() {
|
||||
return 'Google Cloud Print';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getPrinters()
|
||||
{
|
||||
try {
|
||||
$response = $this->client->request('GET', self::URL_SEARCH);
|
||||
$result = json_decode($response->getBody()->getContents(), true);
|
||||
|
||||
return $result['printers'];
|
||||
} catch (Exception $e) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function SettingsStructure()
|
||||
{
|
||||
$googlePrinters = [];
|
||||
try {
|
||||
$googlePrinterArr = $this->getPrinters();
|
||||
} catch (Exception $e) {
|
||||
return [];
|
||||
}
|
||||
foreach($googlePrinterArr as $item) {
|
||||
$googlePrinters[$item['id']] = sprintf('%s:%s', $item['displayName'], $item['connectionStatus']);
|
||||
}
|
||||
|
||||
return [
|
||||
'google_printer' => ['bezeichnung' => 'Drucker:','typ' => 'select', 'optionen' => $googlePrinters],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $document
|
||||
* @param int $count
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function printDocument($document, $count = 1)
|
||||
{
|
||||
if(empty($this->settings['google_printer'])) {
|
||||
return false;
|
||||
}
|
||||
if($count < 1) {
|
||||
$count = 1;
|
||||
}
|
||||
$title = '';
|
||||
$contenttype = 'application/pdf';
|
||||
if(is_file($document)) {
|
||||
$title = basename($document);
|
||||
$document = file_get_contents($document);
|
||||
}
|
||||
$title .= date('YmdHis');
|
||||
$titleFirst = $title;
|
||||
for($i = 1; $i <= $count; $i++) {
|
||||
if($i > 1) {
|
||||
$title = $titleFirst.$i;
|
||||
}
|
||||
$postFields = array(
|
||||
'printerid' => $this->settings['google_printer'],
|
||||
'title' => $title,
|
||||
'contentTransferEncoding' => 'base64',
|
||||
'content' => base64_encode($document),
|
||||
'contentType' => $contenttype
|
||||
);
|
||||
try {
|
||||
$response = $this->client->request('POST', self::URL_PRINT, [], json_encode($postFields));
|
||||
$data = json_decode($response->getBody()->getContents(), true);
|
||||
|
||||
return (isset($data['success']) && $data['success'] === true);
|
||||
} catch (TransferErrorExceptionInterface $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function getAuthToken()
|
||||
{
|
||||
try {
|
||||
/** @var GoogleAccountGateway $gateway */
|
||||
$gateway = $this->app->Container->get('GoogleAccountGateway');
|
||||
$account = $gateway->getCloudPrintAccount();
|
||||
$token = $gateway->getAccessToken($account->getId());
|
||||
} catch (GoogleAccountNotFoundException $e) {
|
||||
throw new GoogleAccountNotFoundException($e->getMessage(), $e->getCode(), $e);
|
||||
} catch (Exception $e) {
|
||||
$token = null;
|
||||
}
|
||||
if ($token === null || $token->getTimeToLive() < 10) {
|
||||
/** @var GoogleAuthorizationService $auth */
|
||||
$auth = $this->app->Container->get('GoogleAuthorizationService');
|
||||
$token = $auth->refreshAccessToken($account);
|
||||
}
|
||||
|
||||
return $token->getToken();
|
||||
}
|
||||
}
|
@ -56,7 +56,6 @@ class erpAPI
|
||||
private static $license;
|
||||
|
||||
private $modulvorhandenlist = null;
|
||||
private static $ioncubeproperties = null;
|
||||
|
||||
public static $lasttime = 0;
|
||||
public $uebersetzungId;
|
||||
@ -615,271 +614,6 @@ function Belegeexport($datei, $doctype, $doctypeid, $append = false, $optionen =
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function checkLicense()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final public function isIoncube()
|
||||
{
|
||||
if(empty(erpAPI::$license))
|
||||
{
|
||||
erpAPI::Ioncube_Property('');
|
||||
}
|
||||
return !empty(erpAPI::$license);
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_Property($key = '')
|
||||
{
|
||||
if(!class_exists('License'))
|
||||
{
|
||||
if(is_file(dirname(dirname(__DIR__)).'/phpwf/plugins/class.license.php'))
|
||||
{
|
||||
include(dirname(dirname(__DIR__)).'/phpwf/plugins/class.license.php');
|
||||
}
|
||||
}
|
||||
if(class_exists('License'))
|
||||
{
|
||||
if(!erpAPI::$license) {
|
||||
erpAPI::$license = new License();
|
||||
}
|
||||
}
|
||||
if(erpAPI::$license) {
|
||||
return erpAPI::$license->getProperty($key);
|
||||
}
|
||||
if(function_exists('ioncube_license_properties'))
|
||||
{
|
||||
if(!self::$ioncubeproperties) {
|
||||
self::$ioncubeproperties = ioncube_license_properties();
|
||||
}
|
||||
$data = self::$ioncubeproperties;
|
||||
if($data && is_array($data) && isset($data[$key]) && is_array($data[$key]) && isset($data[$key]['value'])) {
|
||||
$value = $data[$key]['value'];
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_getMaxUser()
|
||||
{
|
||||
return erpAPI::Ioncube_Property('maxuser');
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_getMaxLightusers()
|
||||
{
|
||||
return erpAPI::Ioncube_Property('maxlightuser');
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_getMaxLightusersRights()
|
||||
{
|
||||
$rechte = (int)erpAPI::Ioncube_Property('maxlightuserrights');
|
||||
if($rechte < 5) {
|
||||
$rechte = 30;
|
||||
}
|
||||
return $rechte;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_BenutzervorlageAnzahlLightuser(&$app, $vorlage)
|
||||
{
|
||||
if(!isset($app->DB)) {
|
||||
return;
|
||||
}
|
||||
return $app->DB->Select("SELECT count(id) FROM `user` WHERE activ = 1 AND type = 'lightuser' AND vorlage = '$vorlage'");
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_LightuserRechteanzahl($app, $id, $type = 'user')
|
||||
{
|
||||
if(!isset($app->DB)) {
|
||||
return false;
|
||||
}
|
||||
if($type === 'vorlage') {
|
||||
$id = $app->DB->Select("SELECT id FROM `uservorlage` WHERE bezeichnung <> '' AND bezeichnung = '".$app->DB->real_escape_string($id)."' LIMIT 1");
|
||||
}
|
||||
$id = (int)$id;
|
||||
if($id <= 0) {
|
||||
return false;
|
||||
}
|
||||
if($type === 'vorlage')
|
||||
{
|
||||
if(!$app->DB->Select("SELECT id FROM `uservorlage` WHERE id = '$id' LIMIT 1")) {
|
||||
return false;
|
||||
}
|
||||
return $app->DB->Select("SELECT count(DISTINCT module, action) FROM `uservorlagerights` WHERE vorlage = '$id' AND permission = 1");
|
||||
}
|
||||
if(!$app->DB->Select("SELECT id FROM `user` WHERE id = '$id' LIMIT 1")) {
|
||||
return false;
|
||||
}
|
||||
return $app->DB->Select("SELECT count(DISTINCT module, action) FROM `userrights` WHERE `user` = '$id' AND permission = 1");
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_HasExpired()
|
||||
{
|
||||
return erpAPI::Ioncube_Property('expdate') && (int)erpAPI::Ioncube_Property('expdate') < time();
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_ExpireInDays()
|
||||
{
|
||||
if(function_exists('ioncube_file_info'))
|
||||
{
|
||||
if(erpAPI::Ioncube_Property('expdate')) {
|
||||
return round(((int)erpAPI::Ioncube_Property('expdate')-time())/86400);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_BeforeExpire()
|
||||
{
|
||||
if(false === erpAPI::Ioncube_ExpireInDays()) {
|
||||
return false;
|
||||
}
|
||||
return erpAPI::Ioncube_ExpireInDays() < 42;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
static function Ioncube_ExpireDate($format = 'd.m.Y')
|
||||
{
|
||||
if(function_exists('ioncube_file_info'))
|
||||
{
|
||||
$dat = erpAPI::Ioncube_Property('expdate');
|
||||
if(!$dat) {
|
||||
return false;
|
||||
}
|
||||
return date($format,(int)$dat);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function GetIoncubeServerList()
|
||||
{
|
||||
$ret = null;
|
||||
$i = 1;
|
||||
while($check = $this->IoncubeProperty('servername'.$i))
|
||||
{
|
||||
$ret[] = $check;
|
||||
$i++;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
final function ServerOK()
|
||||
{
|
||||
$servername = (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != '')?$_SERVER['SERVER_NAME']:(isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'');
|
||||
$serverlist = $this->GetIoncubeServerList();
|
||||
if(!$serverlist) {
|
||||
return true;
|
||||
}
|
||||
foreach($serverlist as $check) {
|
||||
if($servername == $check) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeProperty($key)
|
||||
{
|
||||
if(!class_exists('License'))
|
||||
{
|
||||
if(is_file(dirname(dirname(__DIR__)).'/phpwf/plugins/class.license.php'))
|
||||
{
|
||||
include(dirname(dirname(__DIR__)).'/phpwf/plugins/class.license.php');
|
||||
}
|
||||
}
|
||||
if(class_exists('License'))
|
||||
{
|
||||
if(!erpAPI::$license)erpAPI::$license = new License();
|
||||
}
|
||||
if(erpAPI::$license)return erpAPI::$license->getProperty($key);
|
||||
if(method_exists('erpAPI','Ioncube_Property'))return erpAPI::Ioncube_Property($key);
|
||||
if(function_exists('ioncube_license_properties'))
|
||||
{
|
||||
$data = ioncube_license_properties();
|
||||
if($data && isset($data[$key]) && isset($data[$key]['value']))return $data[$key]['value'];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubegetMaxUser()
|
||||
{
|
||||
return $this->IoncubeProperty('maxuser');
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeHasExpired()
|
||||
{
|
||||
if($this->IoncubeProperty('expdate'))
|
||||
{
|
||||
if((int)$this->IoncubeProperty('expdate') < time())return true;
|
||||
}
|
||||
return false;
|
||||
if(function_exists('ioncube_license_has_expired'))return ioncube_license_has_expired();
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeServerOK()
|
||||
{
|
||||
if(function_exists('ioncube_license_matches_server'))return ioncube_license_matches_server();
|
||||
return true;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeExpireInDays()
|
||||
{
|
||||
if(function_exists('ioncube_file_info'))
|
||||
{
|
||||
if($this->IoncubeProperty('expdate'))return round(((int)$this->IoncubeProperty('expdate')-time())/86400);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeBeforeExpire()
|
||||
{
|
||||
if(false === $this->IoncubeExpireInDays())return false;
|
||||
return $this->IoncubeExpireInDays() < 42;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
final function IoncubeExpireDate($format = 'd.m.Y')
|
||||
{
|
||||
if(function_exists('ioncube_file_info'))
|
||||
{
|
||||
$dat = $this->IoncubeProperty('expdate');
|
||||
if(!$dat) {
|
||||
return false;
|
||||
}
|
||||
return date($format,(int)$dat);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|null
|
||||
*/
|
||||
@ -892,127 +626,6 @@ function Belegeexport($datei, $doctype, $doctypeid, $append = false, $optionen =
|
||||
return $this->appList[$this->app->Conf->WFdbname];
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
function ModuleBenutzeranzahlLizenzFehler($add = '', $typ = 'module', $vorlage = 0)
|
||||
{
|
||||
if(!method_exists($this->app->erp, 'IoncubeProperty')) {
|
||||
return null;
|
||||
}
|
||||
if($typ === 'module')
|
||||
{
|
||||
if(strpos($add, 'shopimporter_') === 0) {
|
||||
return null;
|
||||
}
|
||||
if($add === 'welcome' || $add === 'api' || $add === 'ajax') {
|
||||
return null;
|
||||
}
|
||||
$anz = (int)$this->IoncubeProperty('moduleanzX'.str_replace('_','X',$add));
|
||||
if($anz > 1) {
|
||||
$anzadmin = (int)$this->app->DB->Select("SELECT count(id) FROM `user` WHERE activ = 1 AND type = 'admin'");
|
||||
$rechte = (int)$this->app->DB->Select("SELECT count(u.i) FROM `user` u
|
||||
INNER JOIN (SELECT DISTINCT `user` FROM `userrights` WHERE module = '$add' AND permission = 1) ur ON u.id = ur.`user`
|
||||
WHERE activ = 1 AND type <> 'admin'
|
||||
");
|
||||
if($anzadmin + $rechte + 1 > $anz) {
|
||||
return array('Error'=> 'Es '.($anz > 1?'sind':'ist').' nur '.$anz.' User für das Modul '.ucfirst($add).' lizenziert, es werden aber '.($anzadmin + $rechte + 1).' benötigt');
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if($typ === 'vorlage' && $vorlage)
|
||||
{
|
||||
if(strpos($add, 'shopimporter_') === 0) {
|
||||
return null;
|
||||
}
|
||||
if($add === 'welcome' || $add === 'api' || $add === 'ajax') {
|
||||
return null;
|
||||
}
|
||||
$anz = (int)$this->IoncubeProperty('moduleanzX'.str_replace('_','X',$add));
|
||||
if($anz > 1)
|
||||
{
|
||||
$anzadmin = (int)$this->app->DB->Select("SELECT count(id) FROM `user` WHERE activ = 1 AND type = 'admin'");
|
||||
$bezeichnung = $this->app->DB->Select("SELECT bezeichnung FROM uservorlage WHERE id = '$vorlage' LIMIT 1");
|
||||
if($bezeichnung == '') {
|
||||
return null;
|
||||
}
|
||||
$rechte = (int)$this->app->DB->Select("SELECT count(u.i) FROM `user` u
|
||||
INNER JOIN (SELECT DISTINCT `user` FROM `userrights` WHERE module = '$add' AND permission = 1) ur ON u.id = ur.`user`
|
||||
WHERE activ = 1 AND type <> 'admin' AND vorlage != '".$this->app->DB->real_escape_string($bezeichnung)."'
|
||||
");
|
||||
$neueuser = (int)$this->app->DB->Select("SELECT count(u.id) FROM `user` u
|
||||
WHERE activ = 1 AND type <> 'admin' AND vorlage = '".$this->app->DB->real_escape_string($bezeichnung)."'
|
||||
");
|
||||
if($anzadmin + $rechte + $neueuser > $anz) {
|
||||
return array('Error'=> 'Es '.($anz > 1?'sind':'ist').' nur '.$anz.' User für das Modul '.ucfirst($add).' lizenziert, es werden aber '.($anzadmin + $rechte + $neueuser).' benötigt');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// @refactor LicenceManager Komponente
|
||||
function OnlineshopsLizenzFehler($add = '')
|
||||
{
|
||||
if(!method_exists($this->app->erp, 'IoncubeProperty')) {
|
||||
return false;
|
||||
}
|
||||
$shops = $this->app->DB->SelectArr("SELECT shoptyp,modulename FROM shopexport WHERE aktiv = 1 AND (shoptyp = 'intern' OR shoptyp = 'custom') AND modulename <> '' ORDER BY modulename");
|
||||
if(!$shops) {
|
||||
return false;
|
||||
}
|
||||
$counts = null;
|
||||
foreach($shops as $shop)
|
||||
{
|
||||
if($shop['shoptyp'] === 'intern')
|
||||
{
|
||||
$modulename = $shop['modulename'];
|
||||
}else{
|
||||
if(preg_match_all('/(.*)\_(\d+).php/i',$shop['modulename'],$erg))
|
||||
{
|
||||
$modulename = $erg[1][0];
|
||||
}else $modulename = '';
|
||||
}
|
||||
if($modulename != '')
|
||||
{
|
||||
if(!isset($counts[$modulename]))$counts[$modulename] = 0;
|
||||
$counts[$modulename]++;
|
||||
}
|
||||
}
|
||||
if($add != '')
|
||||
{
|
||||
if(substr($add,-4) === '.php')
|
||||
{
|
||||
if(preg_match_all('/(.*)\_(\d+).php/i',$add,$erg))
|
||||
{
|
||||
$add = $erg[1][0];
|
||||
}else {
|
||||
$add = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($add != '')
|
||||
{
|
||||
if(!isset($counts[$add])) {
|
||||
$counts[$add] = 0;
|
||||
}
|
||||
$counts[$add]++;
|
||||
}
|
||||
if($counts) {
|
||||
foreach($counts as $k => $v) {
|
||||
if($v <= 1) {
|
||||
continue;
|
||||
}
|
||||
$anz = (int)$this->IoncubeProperty('moduleanzX'.str_replace('_','X',$k));
|
||||
if($anz > 0 && $anz < $v) {
|
||||
return array('Error'=> 'Es '.($anz > 1?'sind':'ist').' nur '.$anz.' Importer des Typs '.ucfirst(str_replace('shopimporter_','',$k)).' lizenziert');
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getApps()
|
||||
{
|
||||
/** @var Appstore $obj */
|
||||
@ -6283,59 +5896,9 @@ title: 'Abschicken',
|
||||
$this->modulvorhandenlist[$module] = false;
|
||||
return false;
|
||||
}
|
||||
if(!$this->IoncubeProperty('modullizenzen')) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
if($module === 'chat') {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
$apps = $this->getAppList();
|
||||
$hasAppModuleProperty = !empty($apps[$module]) && isset($apps[$module]['Versionen']);
|
||||
if($hasAppModuleProperty && (string)$apps[$module]['Versionen'] === '') {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
$ablaufdatum = $this->IoncubeProperty('moduleablaufdatumX'.str_replace('_','X',$module));
|
||||
if(!empty($ablaufdatum) && strtotime($ablaufdatum) < strtotime(date('Y-m-d'))) {
|
||||
@unlink(__DIR__.$subdir.$modulefile.'.php');
|
||||
$this->modulvorhandenlist[$module] = false;
|
||||
return false;
|
||||
}
|
||||
if(!isset($apps[$module])) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
$version = $this->Version();
|
||||
if($hasAppModuleProperty && strpos($apps[$module]['Versionen'], $version) !== false) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!empty(erpAPI::Ioncube_Property('moduleX'.str_replace('_','X',$module)))) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
if($isModuleCronjob && !empty('moduleX'.str_replace('_','X',substr($module, 8)))) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
if(empty(erpAPI::Ioncube_Property('modulecheck'))) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
if($isModulePage && strpos($module, 'shopimporter_') === 0 && !empty($this->IoncubeProperty('newversion'))) {
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->modulvorhandenlist[$module] = false;
|
||||
|
||||
return false;
|
||||
$this->modulvorhandenlist[$module] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
// @refactor in UserPermission Komponente
|
||||
@ -7901,14 +7464,7 @@ function SetCheckCronjob($value)
|
||||
*/
|
||||
public function CheckCronjob($checkMaintenance = true)
|
||||
{
|
||||
if(!empty(erpAPI::Ioncube_Property('isdevelopmentversion'))) {
|
||||
if (empty($this->app->erp->GetKonfiguration('last_isdevelopmentversion'))) {
|
||||
$this->app->erp->SetKonfigurationValue('last_isdevelopmentversion', '1');
|
||||
$this->app->erp->SetKonfigurationValue('checkcronjob_deaktiviert', '1');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
elseif (!empty($this->app->erp->GetKonfiguration('last_isdevelopmentversion'))) {
|
||||
if (!empty($this->app->erp->GetKonfiguration('last_isdevelopmentversion'))) {
|
||||
$this->app->erp->SetKonfigurationValue('last_isdevelopmentversion', '');
|
||||
$this->app->erp->SetKonfigurationValue('checkcronjob_deaktiviert', '1');
|
||||
return false;
|
||||
@ -12095,22 +11651,6 @@ function SendPaypalFromAuftrag($auftrag, $test = false)
|
||||
if($this->app->User->GetParameter('tooltipinline_autoopen')) {
|
||||
$this->app->Tpl->Add('INLINEHELPOPEN', ' class="inlineautoopen" ');
|
||||
}
|
||||
$phone = str_replace(['-',' '],'', erpAPI::Ioncube_Property('phone_smb'));
|
||||
if(empty($phone)) {
|
||||
$this->app->Tpl->Set('BEFORESUPPORTPHONE', '<!--');
|
||||
$this->app->Tpl->Set('AFTERSUPPORTPHONE', '-->');
|
||||
}
|
||||
else {
|
||||
$this->app->Tpl->Set('SUPPORTPHONENUMBER', $phone);
|
||||
$sipuid = $this->app->erp->ModulVorhanden('sipgate') && $this->app->erp->GetPlacetelSipuid();
|
||||
if(!empty($sipuid)) {
|
||||
$this->app->Tpl->Set('SIPGATEACTIVE', 1);
|
||||
$this->app->Tpl->Set('SUPPORTPHONENUMBERLINK', '#');
|
||||
}
|
||||
else{
|
||||
$this->app->Tpl->Set('SUPPORTPHONENUMBERLINK', 'tel://'.$phone);
|
||||
}
|
||||
}
|
||||
$this->app->Tpl->Parse('PAGE','tooltipinline.tpl');
|
||||
}
|
||||
|
||||
|
@ -101,10 +101,7 @@ class Briefpapier extends SuperFPDF {
|
||||
|
||||
$hintergrund = $this->getStyleElement('hintergrund');
|
||||
|
||||
if(!empty(erpAPI::Ioncube_Property('isdevelopmentversion'))) {
|
||||
$this->setDevelopmentVersionBackground();
|
||||
}
|
||||
elseif($this->app->erp->BriefpapierHintergrunddisable)
|
||||
if($this->app->erp->BriefpapierHintergrunddisable)
|
||||
{
|
||||
}
|
||||
else if($hintergrund=='logo')
|
||||
|
@ -305,10 +305,8 @@ class Appstore {
|
||||
$ret['lightuser'] = (int)$art['menge'];
|
||||
}
|
||||
|
||||
$maxUser = erpAPI::Ioncube_Property('maxuser');
|
||||
$maxLightUser = erpAPI::Ioncube_Property('maxlightuser');
|
||||
$ret['maxuser'] = (int)$maxUser;
|
||||
$ret['maxlightuser'] = (int)$maxLightUser;
|
||||
$ret['maxuser'] = 0;
|
||||
$ret['maxlightuser'] = 0;
|
||||
if(!empty($data['customerinfo'])) {
|
||||
$ret = array_merge($ret, $data['customerinfo']);
|
||||
$ret['customerinfo'] = $this->getCustomInfoHtml($data['customerinfo']);
|
||||
@ -386,12 +384,12 @@ class Appstore {
|
||||
'user' => 'Benutzeranzahl',
|
||||
'agreement' => 'Einverständnis',
|
||||
];
|
||||
$isTestlizenz = !empty(erpAPI::Ioncube_Property('testlizenz'));
|
||||
$isTestlizenz = false;
|
||||
if(!$isTestlizenz) {
|
||||
unset($mapping['agreement']);
|
||||
$field = 'add_user';
|
||||
$new = $data['user'];
|
||||
$old = erpAPI::Ioncube_Property('maxuser');
|
||||
$old = 0;
|
||||
return $this->SendBuyInfo($field, $new, $old);
|
||||
}
|
||||
$error = [];
|
||||
@ -808,8 +806,8 @@ class Appstore {
|
||||
*/
|
||||
private function isPossibleToChangeUser($type, $count)
|
||||
{
|
||||
$oldUser = (int)erpAPI::Ioncube_Property('maxuser');
|
||||
$oldLightUser = (int)erpAPI::Ioncube_Property('maxlightuser');
|
||||
$oldUser = 0;
|
||||
$oldLightUser = 0;
|
||||
$maxUser = $oldUser;
|
||||
$maxLightUser = $oldLightUser;
|
||||
if($type === 'user') {
|
||||
@ -986,33 +984,6 @@ class Appstore {
|
||||
];
|
||||
}
|
||||
|
||||
protected function showUpdateMessage(): void
|
||||
{
|
||||
if(!$this->canBuy()) {
|
||||
return;
|
||||
}
|
||||
if($this->app->User->GetType() !== 'admin') {
|
||||
return;
|
||||
}
|
||||
$moduleForInfos = $this->getModulesForUpdateInfo();
|
||||
if(empty($moduleForInfos)) {
|
||||
return;
|
||||
}
|
||||
$this->app->Tpl->Set(
|
||||
'MESSAGE',
|
||||
'<div class="info">Es sind Module zum Herunterladen verfügbar. Sie können nun ein Update installieren.
|
||||
<a target="_blank" href="update.php?rand='.sha1(uniqid('', true)).'"><input type="button" value="Update starten" /></a></div>'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function canBuy(): bool
|
||||
{
|
||||
return method_exists('erpAPI', 'Ioncube_Property') && !empty(erpAPI::Ioncube_Property('canbuy'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $iban
|
||||
*
|
||||
@ -1070,30 +1041,6 @@ class Appstore {
|
||||
return $mod === 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $module
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isModulePossibleToBuy($module): bool
|
||||
{
|
||||
if(!$this->canBuy()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->app->erp->ModulVorhanden($module)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$buyList = $this->getActualBuyList();
|
||||
if(empty($buyList['modules']) || !is_array($buyList['modules'])) {
|
||||
return false;
|
||||
}
|
||||
return in_array($module, $buyList['modules']);
|
||||
//return !empty(erpAPI::Ioncube_Property('canbuymodule'.str_replace('_','X', $module)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bool $intern
|
||||
*
|
||||
@ -1445,14 +1392,6 @@ class Appstore {
|
||||
if(!isset($app['project_sensitive'])){
|
||||
$app['project_sensitive'] = false;
|
||||
}
|
||||
$ablaufdatum = $this->app->erp->IoncubeProperty('moduleablaufdatumX'.str_replace('_','X',$key));
|
||||
$test = $this->app->erp->IoncubeProperty('testmoduleX'.str_replace('_','X',$key));
|
||||
if(!empty($ablaufdatum)) {
|
||||
$app['ablaufdatum'] = $ablaufdatum;
|
||||
}
|
||||
if($test) {
|
||||
$app['test'] = $test;
|
||||
}
|
||||
if($this->app->erp->ModulVorhanden($key, $withDeactivated)) {
|
||||
if($app['Versionen'] == '' || $app['Versionen'] === 'ALL') {
|
||||
$res['installiert'][] = $app;
|
||||
@ -3865,16 +3804,14 @@ class Appstore {
|
||||
],
|
||||
);
|
||||
|
||||
if(empty(erpAPI::Ioncube_Property('disabledevelopmentprogram'))) {
|
||||
$apps['developmentprogram'] = [
|
||||
'Bezeichnung' => 'Development Programm',
|
||||
'Link' => 'index.php?module=developmentprogram&action=list',
|
||||
'Icon' => 'Icons_dunkel_25.gif',
|
||||
'Versionen' => 'ENT',
|
||||
'kategorie' => '{|System|}',
|
||||
'beta' => false,
|
||||
];
|
||||
}
|
||||
$apps['developmentprogram'] = [
|
||||
'Bezeichnung' => 'Development Programm',
|
||||
'Link' => 'index.php?module=developmentprogram&action=list',
|
||||
'Icon' => 'Icons_dunkel_25.gif',
|
||||
'Versionen' => 'ENT',
|
||||
'kategorie' => '{|System|}',
|
||||
'beta' => false,
|
||||
];
|
||||
|
||||
if(!empty($this->app->Tpl) && method_exists($this->app->Tpl,'pruefeuebersetzung')) {
|
||||
foreach($apps as $k => $v) {
|
||||
@ -4245,52 +4182,7 @@ class Appstore {
|
||||
|
||||
$canUserTestModule = $this->app->erp->RechteVorhanden('appstore', 'testmodule');
|
||||
|
||||
if($canUserTestModule && $this->app->erp->isIoncube() && $this->app->Secure->GetPOST('testen')) {
|
||||
$modul = $this->app->Secure->GetPOST('modul');
|
||||
$get = $this->app->Secure->GetPOST('modulbestaetigen');
|
||||
$json = false;
|
||||
if($modul == '' && $get != '') {
|
||||
$json = true;
|
||||
$message = '';
|
||||
if($module && !empty($module['kauf'])) {
|
||||
foreach($module['kauf'] as $k => $v) {
|
||||
if($v['md5'] === $get) {
|
||||
$mods = $this->app->erp->getAppList();
|
||||
foreach($mods as $k2 => $v2) {
|
||||
if(md5($v2['Bezeichnung']) === $get) {
|
||||
$modul = $k2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($modul) {
|
||||
$testapp = $modul;
|
||||
if(is_file(dirname(__DIR__).'/update.php')) {
|
||||
$result = '';
|
||||
include_once dirname(__DIR__).'/update.php';
|
||||
if($result === 'OK') {
|
||||
$message = '<div class="info">Das Modul wurde zum Testen angefragt. Bitte ziehen Sie sich über den Update-Prozess in ca 10 Minuten ein Update. Sie erhalten mit diesem das Modul zum Testen.</div>';
|
||||
if(!$json) {
|
||||
$this->app->Tpl->Add('MESSAGE', $message);
|
||||
}
|
||||
}
|
||||
else{
|
||||
$message = '<div class="error">Es ist ein Fehler beim Senden der Anfrage aufgetreten: '.$result.'</div>';
|
||||
if(!$json) {
|
||||
$this->app->Tpl->Add('MESSAGE', $message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($json) {
|
||||
return new JsonResponse(['html'=>$message]);
|
||||
}
|
||||
$this->clearCache();
|
||||
}
|
||||
elseif($canUserTestModule && !empty($get = $this->app->Secure->GetGET('get')) && !empty($module['kauf'])) {
|
||||
if($canUserTestModule && !empty($get = $this->app->Secure->GetGET('get')) && !empty($module['kauf'])) {
|
||||
foreach($module['kauf'] as $v) {
|
||||
if($v['md5'] === $get) {
|
||||
$mods = $this->app->erp->getAppList();
|
||||
@ -4360,7 +4252,6 @@ class Appstore {
|
||||
|
||||
// Detail-Seite ausblenden
|
||||
$this->app->Tpl->Set('APPSTOREDETAILSEITEAUSBLENDEN', 'display: none;');
|
||||
$this->showUpdateMessage();
|
||||
|
||||
/** @var Welcome $welcome */
|
||||
$welcome = $this->app->loadModule('welcome');
|
||||
|
@ -906,38 +906,6 @@ class Benutzer
|
||||
|
||||
if(is_numeric($user) && $module!='' && $action!='' && $value!='') {
|
||||
$id = $this->app->DB->Select("SELECT id FROM userrights WHERE user='$user' AND module='$module' AND action='$action' LIMIT 1");
|
||||
if($value && $this->app->erp->isIoncube() && method_exists('erpAPI','Ioncube_getMaxLightusersRights') && method_exists('erpAPI','Ioncube_LightuserRechteanzahl'))
|
||||
{
|
||||
$lightuser = $this->app->DB->Select("SELECT id FROM `user` WHERE id = '$user' AND type='lightuser' LIMIT 1");
|
||||
if($lightuser)
|
||||
{
|
||||
$anzerlaubt = erpAPI::Ioncube_getMaxLightusersRights();
|
||||
$anzvorhanden = erpAPI::Ioncube_LightuserRechteanzahl($this->app, $user);
|
||||
if($anzvorhanden >= $anzerlaubt)
|
||||
{
|
||||
exit;
|
||||
}
|
||||
if($id)
|
||||
{
|
||||
if(!$this->app->DB->Select("SELECT permission FROM userrights WHERE id = '$id'"))exit;
|
||||
}else{
|
||||
if($anzvorhanden + 1 > $anzerlaubt)exit;
|
||||
}
|
||||
}
|
||||
if($value && method_exists($this->app->erp, 'ModuleBenutzeranzahlLizenzFehler') && ($err = $this->app->erp->ModuleBenutzeranzahlLizenzFehler($module)))
|
||||
{
|
||||
if(isset($err['Error']))
|
||||
{
|
||||
if(is_array($err['Error']))
|
||||
{
|
||||
echo "Error".implode('<br />',$err['Error']);
|
||||
}else{
|
||||
echo "Error".$err['Error'];
|
||||
}
|
||||
}
|
||||
exit;
|
||||
}
|
||||
}
|
||||
if(is_numeric($id) && $id>0)
|
||||
{
|
||||
if($value=="1")
|
||||
|
@ -1,57 +0,0 @@
|
||||
<!-- gehort zu tabview -->
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1"></a></li>
|
||||
</ul>
|
||||
<!-- ende gehort zu tabview -->
|
||||
|
||||
<!-- erstes tab -->
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
|
||||
<div class="col-xs-12 col-md-2 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<form action="?module=googleapi&action=print" method="POST">
|
||||
<fieldset>
|
||||
<legend>{|Google Cloud Print verwenden|}</legend>
|
||||
|
||||
<div></div>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Google Cloud Print:</td>
|
||||
<td>
|
||||
<i>
|
||||
Um Google Cloud Print zu verwenden klicke auf Verbinden und wähle im nächsten Schritt, das Google
|
||||
Konto aus, das für Cloud Printing verwendet werden soll.
|
||||
</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<input type="submit" name="authorize_cloudprint" value="{|Verbinden|}"/>
|
||||
<input type="submit" name="unauthorize" value="{|Trennen|}"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[TAB1NEXT]
|
||||
</div>
|
||||
|
||||
<!-- tab view schließen -->
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
/*
|
||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*
|
||||
@ -10,8 +10,8 @@
|
||||
* to obtain the text of the corresponding license version.
|
||||
*
|
||||
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*/
|
||||
?>
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
|
||||
use Xentral\Modules\SystemConfig\SystemConfigModule;
|
||||
@ -80,8 +80,6 @@ class Dataprotection
|
||||
|
||||
$this->app->Location->execute('index.php?module=dataprotection&action=services');
|
||||
}
|
||||
$isDemo = !empty(erpAPI::Ioncube_Property('testlizenz'))
|
||||
&& !empty(erpAPI::Ioncube_Property('iscloud'));
|
||||
$google = $this->isGoogleAnalyticsActive();
|
||||
$improvement = $this->isImprovementProgramActive();
|
||||
$hubspot = $this->isHubspotActive();
|
||||
@ -102,9 +100,7 @@ class Dataprotection
|
||||
if($zendesk) {
|
||||
$this->app->Tpl->Set('DATAPROTECTION_ZENDESK', ' checked="checked" ');
|
||||
}
|
||||
if(!$isDemo) {
|
||||
$this->app->Tpl->Set('DISABLED_HUBSPOT', ' disabled="disabled" ');
|
||||
}
|
||||
$this->app->Tpl->Set('DISABLED_HUBSPOT', ' disabled="disabled" ');
|
||||
|
||||
$this->app->erp->MenuEintrag('index.php?module=dataprotection&action=list', 'Datenschutzerklärung');
|
||||
$this->app->erp->MenuEintrag('index.php?module=dataprotection&action=services', 'Dienste');
|
||||
@ -163,12 +159,6 @@ class Dataprotection
|
||||
{
|
||||
$hubspot = $this->systemConfigModule->tryGetValue('dataprotection', 'hubspot');
|
||||
|
||||
$isDemo = !empty(erpAPI::Ioncube_Property('testlizenz'))
|
||||
&& !empty(erpAPI::Ioncube_Property('iscloud'));
|
||||
if($hubspot === null) {
|
||||
return $isDemo;
|
||||
}
|
||||
|
||||
return $hubspot === '1';
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ class Einstellungen {
|
||||
}
|
||||
|
||||
$this->app->erp->MenuEintrag('index.php?module=einstellungen&action=betaprogram', 'Beta Programm');
|
||||
if(!empty(erpAPI::Ioncube_Property('isbetaactive'))) {
|
||||
if(false) {
|
||||
$this->app->Tpl->Set('BEFORESHOWIFBETADEACTIVATED', '<!--');
|
||||
$this->app->Tpl->Set('AFTERSHOWIFBETADEACTIVATED', '-->');
|
||||
}
|
||||
|
@ -22,9 +22,6 @@ class GoogleApi
|
||||
/** @var string MODULE_NAME */
|
||||
public const MODULE_NAME = 'GoogleApi';
|
||||
|
||||
/** @var string GOOGLE_API_TESTURL_PRINT */
|
||||
//private const TESTURL_PRINT = 'https://www.google.com/cloudprint/search';
|
||||
|
||||
/** @var string GOOGLE_API_TESTURL_CALENDAR */
|
||||
//private const TESTURL_CALENDAR = 'https://www.googleapis.com/calendar/v3/users/me/calendarList';
|
||||
|
||||
@ -64,9 +61,7 @@ class GoogleApi
|
||||
// ab hier alle Action Handler definieren die das Modul hat
|
||||
$this->app->ActionHandler('list', 'GoogleApiEdit');
|
||||
$this->app->ActionHandler('edit', 'GoogleApiEdit');
|
||||
$this->app->ActionHandler('print', 'GoogleApiPrint');
|
||||
$this->app->ActionHandler('redirect', 'GoogleApiRedirect');
|
||||
$this->app->ActionHandler('ajaxprinters', 'GoogleApiAjaxPrinters');
|
||||
|
||||
$this->app->ActionHandlerListen($app);
|
||||
}
|
||||
@ -135,7 +130,6 @@ class GoogleApi
|
||||
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS g.id, g.id_name, g.description,
|
||||
(CASE g.type
|
||||
WHEN 'print' THEN 'Google Cloud Print'
|
||||
WHEN 'mail' THEN 'Google Mail'
|
||||
WHEN 'calendar' THEN 'Google Calendar'
|
||||
ELSE ''
|
||||
@ -319,41 +313,6 @@ class GoogleApi
|
||||
$this->app->Tpl->Parse('PAGE', 'googleapi_edit.tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function GoogleApiPrint(): void
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = $this->app->Container->get('Request');
|
||||
if ($request->post->has('authorize_cloudprint')) {
|
||||
/** @var Session $session */
|
||||
$session = $this->app->Container->get('Session');
|
||||
$redirect = $this->auth->requestScopeAuthorization(
|
||||
$session,
|
||||
[GoogleScope::CLOUDPRINT],
|
||||
'index.php?module=googleapi&action=print'
|
||||
);
|
||||
SessionHandler::commitSession($session);
|
||||
$redirect->send();
|
||||
$this->app->ExitXentral();
|
||||
}
|
||||
|
||||
if ($request->post->has('unauthorize')) {
|
||||
$this->unauthorize();
|
||||
}
|
||||
|
||||
$this->app->Tpl->Add(
|
||||
'MESSAGE',
|
||||
'<div class="warning">
|
||||
Hinweis: Google wird den Cloud Print Dienst am 31.12.2020 abschalten.</div>'
|
||||
);
|
||||
|
||||
$this->app->erp->Headlines('Google Cloud Print');
|
||||
$this->createMenu();
|
||||
$this->app->Tpl->Parse('PAGE', 'googleapi_print.tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* After user confirmed access to Google API manually, Google API
|
||||
* redirects user to this action sending authentication code and API scope
|
||||
@ -382,47 +341,6 @@ class GoogleApi
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Action for the printer setup gui to get printer options from api connection
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function GoogleApiAjaxPrinters()
|
||||
{
|
||||
$data = [];
|
||||
$apiName = $this->app->DB->real_escape_string(trim($this->app->Secure->GetPOST('api_name')));
|
||||
if(!empty($apiName)) {
|
||||
$id = $this->getGoogleApiByName($apiName);
|
||||
$token = $this->getAccessToken($id);
|
||||
$authHeader = sprintf('Authorization: Bearer %s', $token);
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [$authHeader]);
|
||||
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION,true);
|
||||
curl_setopt( $ch, CURLOPT_HEADER,false);
|
||||
curl_setopt( $ch, CURLOPT_RETURNTRANSFER,true);
|
||||
curl_setopt( $ch, CURLOPT_HTTPAUTH,CURLAUTH_ANY);
|
||||
curl_setopt( $ch, CURLOPT_URL, 'https://www.google.com/cloudprint/search');
|
||||
curl_setopt( $ch, CURLOPT_POST, true );
|
||||
curl_setopt ( $ch, CURLOPT_POSTFIELDS, ['printerid' => $id]);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$result = json_decode($response, true);
|
||||
|
||||
$printers = $result['printers'];
|
||||
if(!empty($printers)) {
|
||||
foreach ($printers as $item) {
|
||||
$data[$item['id']] = sprintf('%s:%s', $item['displayName'], $item['connectionStatus']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$responseData = json_encode($data);
|
||||
header('Content-Type: application/json');
|
||||
echo $responseData;
|
||||
$this->app->ExitXentral();
|
||||
}
|
||||
|
||||
/**
|
||||
* Automatically calls getAccessTokenByRederect if needed.
|
||||
*
|
||||
@ -682,11 +600,6 @@ class GoogleApi
|
||||
}
|
||||
|
||||
switch ($type) {
|
||||
case 'print':
|
||||
$scope = self::GOOGLE_API_SCOPE_PRINT;
|
||||
|
||||
break;
|
||||
|
||||
case 'mail':
|
||||
$scope = self::GOOGLE_API_SCOPE_MAIL;
|
||||
|
||||
@ -855,10 +768,6 @@ class GoogleApi
|
||||
|
||||
$type = $this->app->DB->Select(sprintf("SELECT g.type FROM googleapi AS g WHERE g.id = '%s';", $id));
|
||||
switch ($type) {
|
||||
case 'print':
|
||||
$testurl = self::GOOGLE_API_TESTURL_PRINT;
|
||||
break;
|
||||
|
||||
case 'mail':
|
||||
$this->app->Tpl->Add(
|
||||
$messageTarget,
|
||||
@ -893,18 +802,6 @@ class GoogleApi
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($type === 'print' &&
|
||||
(!isset($info['content_type']) || explode(';', $info['content_type'])[0] !== 'text/plain')
|
||||
) {
|
||||
$error = 'Test fehlgeschlagen: Fehlerhafte Antwort vom Server';
|
||||
$this->app->Tpl->Add(
|
||||
$messageTarget,
|
||||
sprintf('<div class="error">%s</div>', $error)
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($type === 'mail' &&
|
||||
(!isset($info['content_type']) || explode(';', $info['content_type'])[0] !== 'text/plain')
|
||||
) {
|
||||
@ -977,6 +874,5 @@ class GoogleApi
|
||||
$this->app->erp->MenuEintrag('index.php?module=googleapi&action=list',
|
||||
'Zurück zur Übersicht');
|
||||
$this->app->erp->MenuEintrag('index.php?module=googleapi&action=list', 'Übersicht');
|
||||
$this->app->erp->MenuEintrag('index.php?module=googleapi&action=print', 'Google Cloud Print');
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
/*
|
||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*
|
||||
@ -10,8 +10,8 @@
|
||||
* to obtain the text of the corresponding license version.
|
||||
*
|
||||
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*/
|
||||
?>
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
|
||||
use Xentral\Components\Http\JsonResponse;
|
||||
@ -124,12 +124,6 @@ class Learningdashboard
|
||||
$initialSetupLesson->addTask(new Task($wizardService->getWizard('basic_settings', $userId)));
|
||||
$initialSetupLesson->addTask(new Task($wizardService->getWizard('parts_list', $userId)));
|
||||
|
||||
/** @var EnvironmentConfig $environmentConfig */
|
||||
$environmentConfig = $this->app->Container->get('EnvironmentConfig');
|
||||
if($environmentConfig->isSystemFlaggedAsDevelopmentVersion() || $environmentConfig->isSystemFlaggedAsTestVersion()){
|
||||
$initialSetupLesson->addTask(new Task($wizardService->getWizard('restore_factory_settings', $userId)));
|
||||
}
|
||||
|
||||
$shopConnectionLesson = new Lesson('Shopanbindung');
|
||||
$shopConnectionLesson->addTask(new Task($wizardService->getWizard('shopify', $userId)));
|
||||
$shopConnectionLesson->addTask(new Task($wizardService->getWizard('amazon', $userId)));
|
||||
|
@ -1765,9 +1765,6 @@ INNER JOIN shopexport s ON
|
||||
*/
|
||||
public function createInternShop($auswahlmodul)
|
||||
{
|
||||
if($fehler = $this->app->erp->OnlineshopsLizenzFehler($auswahlmodul)) {
|
||||
return ['success'=>false,'error'=>$fehler['Error']];
|
||||
}
|
||||
$bezeichnung = ucfirst(str_replace('shopimporter_','',$auswahlmodul));
|
||||
$i = 1;
|
||||
while($this->app->DB->Select("SELECT id FROM shopexport WHERE bezeichnung = '$bezeichnung' LIMIT 1")) {
|
||||
|
@ -989,57 +989,6 @@ class Supportapp Extends GenSupportapp {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
$updatedaten = $this->app->DB->SelectArr("SELECT w.*,
|
||||
date_format(versionupdate,'%d.%m.%Y %H:%i:%s') as versionupdatede ,
|
||||
date_format(ioncube_expdate,'%d.%m.%Y') as ioncube_expdatede,
|
||||
datediff(ioncube_expdate,CURDATE()) as diff FROM wawisionsupport w WHERE adresse = '$kundenid' LIMIT 1");
|
||||
if($updatedaten)
|
||||
{
|
||||
$updatedaten = reset($updatedaten);
|
||||
$this->app->Tpl->Add('UPDATE_MODULLIST',str_replace(',',', ',$updatedaten['module']));
|
||||
|
||||
$revision = $updatedaten['revision'];
|
||||
if($revision)$revision = '<a target="_blank" href="http://192.168.0.81/versionen/versionen.php?version='.$revision.'">'.$revision.'</a>';
|
||||
$this->app->Tpl->Add('UPDATE_REVISION',$revision);
|
||||
$this->app->Tpl->Add('UPDATE_MAXUSER', $updatedaten['ioncube_maxuser']);
|
||||
$this->app->Tpl->Add('UPDATE_MAXLIGHTUSER', $updatedaten['ioncube_maxlightuser']);
|
||||
$this->app->Tpl->Add('UPDATE_VERSIONUPATE', $updatedaten['versionupdatede']);
|
||||
$this->app->Tpl->Add('UPDATE_ABLAUFAM',$updatedaten['ioncube_expdatede']);
|
||||
$this->app->Tpl->Add('UPDATE_ABLAUFIN',$updatedaten['diff']);
|
||||
$this->app->Tpl->Add('UPDATE_VERSIONSHINWEIS',$updatedaten['versionshinweis']);
|
||||
|
||||
$this->app->Tpl->Add('UPDATE_DEAKTIVIEREN', $updatedaten['ioncube_deaktivateonexp']?'ja':'nein');
|
||||
$this->app->Tpl->Add('UPDATE_GESPERRT', $updatedaten['gesperrt']?'ja':'nein');
|
||||
$this->app->Tpl->Add('UPDATE_TESTLIZENZ', $updatedaten['testlizenz']?'ja':'nein');
|
||||
$this->app->Tpl->Add('UPDATE_CLOUD', $updatedaten['cloud']!=''?ucfirst($updatedaten['cloud']):'Kauf Erstvertrag');
|
||||
|
||||
if($updatedaten['module_custom']!='')
|
||||
{
|
||||
$this->app->Tpl->Add('UPDATEWARNUNG','<div class="error">Kundenspezifische Modifikationen vorhanden!</div>');
|
||||
|
||||
$module_custom = json_decode($updatedaten['module_custom']);
|
||||
foreach($module_custom as $datei => $arr)
|
||||
{
|
||||
if(strpos($datei,'/download/') !== 0)
|
||||
{
|
||||
$this->app->Tpl->Add('UEBERLADENLISTE','<div >'.$datei.'');
|
||||
|
||||
//foreach($arr as $fkey => $arr2)
|
||||
// {
|
||||
// $this->app->Tpl->Add('UEBERLADENLISTE','<pre>'."\r\n...\r\n");
|
||||
// foreach($arr2 as $v)$this->app->Tpl->Add('UEBERLADENLISTE',$v);
|
||||
// $this->app->Tpl->Add('UEBERLADENLISTE',"\r\n...\r\n".'</pre><br /><br />');
|
||||
//}
|
||||
$this->app->Tpl->Add('UEBERLADENLISTE','</div>');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}*/
|
||||
//$this->app->Tpl->Add('MODULEUPDATE');
|
||||
|
||||
|
||||
$updates ='<table class="mkTable" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>Datum</td>
|
||||
|
@ -719,7 +719,6 @@ class Systemhealth {
|
||||
'max_upload' => 'Upload-Kapazität',
|
||||
'max_execution_time' => 'Scriptlauftzeit',
|
||||
'userdata_writeable' => 'Schreibrechte in Userdata',
|
||||
'ioncube' => 'Lizenz',
|
||||
'tls1-2' => 'TLS v1.2',
|
||||
],
|
||||
'settings' => [
|
||||
|
@ -720,25 +720,6 @@ class Systemlog {
|
||||
}
|
||||
}
|
||||
$typeToMessage['php-ssh2'] = (!empty($ret)?count($ret):0) - 1;
|
||||
if(!function_exists('ioncube_loader_version')) {
|
||||
$tmp['status'] = 'warning';
|
||||
$tmp['text'] = 'Ioncube ist nicht installiert (Eine Installation ist trotzdem möglich)';
|
||||
$ret[] = $tmp;
|
||||
}
|
||||
else {
|
||||
$ioncube_loader_version = ioncube_loader_version();
|
||||
if($ioncube_loader_version[0]< 5 && $ioncube_loader_version[1] === '.') {
|
||||
$tmp['status'] = 'warning';
|
||||
$tmp['text'] = 'Die Ioncubeversion ist zu alt (Eine Installation ist trotzdem möglich)';
|
||||
$ret[] = $tmp;
|
||||
}
|
||||
else{
|
||||
$tmp['status'] = 'ok';
|
||||
$tmp['text'] = 'Ioncube verfügbar';
|
||||
$ret[] = $tmp;
|
||||
}
|
||||
}
|
||||
$typeToMessage['ioncube'] = (!empty($ret)?count($ret):0) - 1;
|
||||
$post_max_size = @ini_get('client_max_body_size');
|
||||
if($post_max_size == ''){
|
||||
$post_max_size = @ini_get('post_max_size');
|
||||
|
@ -2244,41 +2244,6 @@ $this->app->Tpl->Add('TODOFORUSER',"<tr><td width=\"90%\">".$tmp[$i]['aufgabe'].
|
||||
$this->app->Tpl->Add('TAB1','OpenXE is free open source software under AGPL/EGPL license, based on <a href="https://xentral.com" target="_blank">Xentral®</a> by Xentral ERP Software GmbH.<br><br><div class="info"><img src="themes/new/images/Xentral_ERP_Logo-200.png"><br>Das Logo und der Link zur Homepage <a href="https://xentral.biz" target=\_blank\>https://xentral.biz</a> dürfen nicht entfernt werden.</div><br>© Copyright by OpenXE project & Xentral ERP Software GmbH Augsburg');
|
||||
}
|
||||
|
||||
if($this->app->erp->isIoncube() && method_exists($this->app->erp, 'IoncubeProperty'))
|
||||
{
|
||||
if(method_exists('erpAPI','Ioncube_Property'))
|
||||
{
|
||||
$hinweis = erpAPI::Ioncube_Property('versionshinweis');
|
||||
}else{
|
||||
$hinweis = $this->app->erp->IoncubeProperty('versionshinweis');
|
||||
}
|
||||
if($hinweis){$hinweis = ' ('.$hinweis.')';}else{$hinweis = '';}
|
||||
if(method_exists('erpAPI', 'Ioncube_HasExpired'))
|
||||
{
|
||||
$hasexpired = erpAPI::Ioncube_HasExpired();
|
||||
}else{
|
||||
$hasexpired = $this->app->erp->IoncubeHasExpired();
|
||||
}
|
||||
if(method_exists('erpAPI', 'Ioncube_ExpireDate'))
|
||||
{
|
||||
$expiredate = erpAPI::Ioncube_ExpireDate();
|
||||
}else{
|
||||
$expiredate = $this->app->erp->IoncubeExpireDate();
|
||||
}
|
||||
|
||||
if($hasexpired && is_dir(dirname(dirname(__DIR__)).'/www_oss') && is_dir(dirname(dirname(__DIR__)) . '/phpwf_oss') && is_dir(dirname(dirname(__DIR__)) . '/phpwf_oss/types') && $this->app->User->GetType() == 'admin')
|
||||
{
|
||||
if(is_dir(dirname(dirname(__DIR__)).'/www_oss') && is_dir(dirname(dirname(__DIR__)) . '/phpwf_oss') && is_dir(dirname(dirname(__DIR__)) . '/phpwf_oss/types') && $this->app->User->GetType() == 'admin')
|
||||
{
|
||||
$this->app->Tpl->Add('TAB1','<form method="post"><div class="info">
|
||||
<input type="checkbox" value="1" name="restoreoss" /> {|Wieder auf Open-Source Version wechseln|}<br />
|
||||
Hinweis: Bitte sichern Sie wenn Sie eigene Quelltexte in Xentral hinterlegt haben diese gesondert. Es werden alle fremden Quelltextdateien entfernt.<br />
|
||||
<input type="submit" style="margin:5px;" value="{|Jetzt auf Open-Source Version wechseln|}" /><div style="clear:both;"></div>
|
||||
</div></form>');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tmp = file_get_contents('../LICENSE');
|
||||
|
||||
$phpmailer = file_get_contents('../www/plugins/phpmailer/LICENSE');
|
||||
@ -2288,109 +2253,6 @@ $this->app->Tpl->Add('TODOFORUSER',"<tr><td width=\"90%\">".$tmp[$i]['aufgabe'].
|
||||
|
||||
$this->app->Tpl->Add('TAB1','</td></tr>');
|
||||
|
||||
if($this->app->erp->isIoncube() && method_exists($this->app->erp, 'IoncubeProperty'))
|
||||
{
|
||||
$first = true;
|
||||
if(method_exists('erpAPI','Ioncube_getMaxUser'))
|
||||
{
|
||||
$maxuser = erpAPI::Ioncube_getMaxUser();
|
||||
}else{
|
||||
$maxuser = $this->app->erp->IoncubegetMaxUser();
|
||||
}
|
||||
$maxlightuser = 0;
|
||||
$maxlightuserrechte = 0;
|
||||
$anzahllightuser = 0;
|
||||
|
||||
if(method_exists('erpAPI','Ioncube_getMaxLightusers') && method_exists('erpAPI','Ioncube_getMaxLightusersRights'))
|
||||
{
|
||||
$maxlightuser = erpAPI::Ioncube_getMaxLightusers();
|
||||
$maxlightuserrechte = erpAPI::Ioncube_getMaxLightusersRights();
|
||||
}
|
||||
$mitarbeiterzeiterfassung = $this->app->erp->ModulVorhanden('mitarbeiterzeiterfassung')?$maxuser:0;
|
||||
|
||||
if($maxuser) {
|
||||
$anzuser2 = 0;
|
||||
if($maxlightuser > 0) {
|
||||
$anzuser2 = (int)$this->app->DB->Select("SELECT count(DISTINCT u.id) FROM `user` u WHERE activ = 1 AND type = 'lightuser' ");
|
||||
$anzahllightuser = $anzuser2;
|
||||
$anzuser = (int)$this->app->DB->Select("SELECT count(id) FROM `user` WHERE activ = 1 AND not isnull(hwtoken) AND hwtoken <> 4") - $anzuser2;
|
||||
$anzuserzeiterfassung = (int)$this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken = 4 AND type != 'lightuser'");
|
||||
}else{
|
||||
$anzuser = (int)$this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken <> 4 ");
|
||||
$anzuserzeiterfassung = (int)$this->app->DB->Select("SELECT count(*) from user where activ = 1 AND hwtoken = 4");
|
||||
}
|
||||
|
||||
$userred = $anzuser > $maxuser
|
||||
|| (
|
||||
($anzuser + $anzuserzeiterfassung + $anzuser2) >
|
||||
$mitarbeiterzeiterfassung + $maxuser + $maxlightuser
|
||||
)
|
||||
|| (($anzuser + $anzuserzeiterfassung) > $mitarbeiterzeiterfassung + $maxuser);
|
||||
|
||||
|
||||
$this->app->Tpl->Add(
|
||||
'TAB1',
|
||||
'<tr><td><div' . ($userred ? ' style="color:red;" ' : '') . '>Benutzer ' .
|
||||
($anzuser + $anzahllightuser + $anzuserzeiterfassung) .
|
||||
($maxlightuser > 0 || $anzuserzeiterfassung > 0?' (davon ':'').
|
||||
($maxlightuser > 0 ? $anzahllightuser . ' Light-User' : '') .
|
||||
($maxlightuser > 0 && $anzuserzeiterfassung > 0?', ':'').
|
||||
($anzuserzeiterfassung > 0 ? $anzuserzeiterfassung . ' Zeiterfassung-User' : '') .
|
||||
($maxlightuser > 0 || $anzuserzeiterfassung > 0?')':'').
|
||||
' von ' .
|
||||
($maxuser + $maxlightuser + $mitarbeiterzeiterfassung) .
|
||||
($maxlightuser > 0 || $mitarbeiterzeiterfassung > 0?' (davon ':'').
|
||||
($maxlightuser > 0 ? $maxlightuser . ' Light-User' : '') .
|
||||
($maxlightuser > 0 && $mitarbeiterzeiterfassung > 0?', ':'').
|
||||
($mitarbeiterzeiterfassung > 0 ? $mitarbeiterzeiterfassung . ' Zeiterfassung-User' : '') .
|
||||
($maxlightuser > 0 || $mitarbeiterzeiterfassung > 0?')':'').
|
||||
'</div></td></tr>'
|
||||
);
|
||||
}
|
||||
|
||||
if(method_exists('erpAPI','Ioncube_Property'))
|
||||
{
|
||||
$hinweis = erpAPI::Ioncube_Property('versionshinweis');
|
||||
}else{
|
||||
$hinweis = $this->app->erp->IoncubeProperty('versionshinweis');
|
||||
}
|
||||
if($hinweis){
|
||||
$hinweis = ' ('.$hinweis.')';
|
||||
}else{
|
||||
$hinweis = '';
|
||||
}
|
||||
if(method_exists('erpAPI', 'Ioncube_HasExpired'))
|
||||
{
|
||||
$hasexpired = erpAPI::Ioncube_HasExpired();
|
||||
}else{
|
||||
$hasexpired = $this->app->erp->IoncubeHasExpired();
|
||||
}
|
||||
if(method_exists('erpAPI', 'Ioncube_ExpireDate'))
|
||||
{
|
||||
$expiredate = erpAPI::Ioncube_ExpireDate();
|
||||
}else{
|
||||
$expiredate = $this->app->erp->IoncubeExpireDate();
|
||||
}
|
||||
if(method_exists('erpAPI', 'Ioncube_BeforeExpire'))
|
||||
{
|
||||
$ioncubebeforeexpire = erpAPI::Ioncube_BeforeExpire();
|
||||
}else{
|
||||
$ioncubebeforeexpire = $this->app->erp->IoncubeBeforeExpire();
|
||||
}
|
||||
|
||||
if($hasexpired)
|
||||
{
|
||||
$first = false;
|
||||
$this->app->Tpl->Add('TAB1','<tr><td><div style="color:red;">Ihre Lizenz ist am '.$expiredate.' abgelaufen'.$hinweis.'.</div></td></tr>');
|
||||
} elseif($ioncubebeforeexpire) {
|
||||
$first = false;
|
||||
$this->app->Tpl->Add('TAB1','<tr><td><div style="color:red;">Ihre Lizenz läuft am '.$expiredate.' ab'.$hinweis.'.</div></td></tr>');
|
||||
} elseif($expiredate) {
|
||||
$first = false;
|
||||
$this->app->Tpl->Add('TAB1','<tr><td><div>Die Lizenz läuft am '.$expiredate.' ab'.$hinweis.'.</div></td></tr>');
|
||||
}
|
||||
}
|
||||
|
||||
if(method_exists($this->app->erp, 'VersionsInfos'))
|
||||
{
|
||||
$ver = $this->app->erp->VersionsInfos();
|
||||
@ -3117,8 +2979,6 @@ $this->app->Tpl->Add('TODOFORUSER',"<tr><td width=\"90%\">".$tmp[$i]['aufgabe'].
|
||||
{
|
||||
$userNames = [];
|
||||
$members = [];
|
||||
$needToPreventExampleImportFailure = !empty(erpAPI::Ioncube_Property('testlizenz'))
|
||||
&& !empty(erpAPI::Ioncube_Property('iscloud'));
|
||||
for($i = 0; $i < 5; $i++) {
|
||||
$userName = $this->app->Secure->GetPOST('teamMemberName'.($i > 0?(string)$i:''));
|
||||
if(empty($userName)) {
|
||||
@ -3160,9 +3020,6 @@ $this->app->Tpl->Add('TODOFORUSER',"<tr><td width=\"90%\">".$tmp[$i]['aufgabe'].
|
||||
)
|
||||
);
|
||||
$addressId = (int)$this->app->DB->GetInsertID();
|
||||
if($needToPreventExampleImportFailure) {
|
||||
$addressId = $this->ChangeAddressIdIfCollideWithExampleData($addressId);
|
||||
}
|
||||
$this->app->erp->AddRolleZuAdresse($addressId, 'Mitarbeiter', 'von', 'Projekt', $projectId);
|
||||
$vorlage =
|
||||
$this->app->DB->real_escape_string(
|
||||
@ -3185,9 +3042,6 @@ $this->app->Tpl->Add('TODOFORUSER',"<tr><td width=\"90%\">".$tmp[$i]['aufgabe'].
|
||||
)
|
||||
);
|
||||
$newUserId = (int)$this->app->DB->GetInsertID();
|
||||
if($needToPreventExampleImportFailure){
|
||||
$newUserId = $this->ChangeUserIdIfCollideWithExampleData($newUserId);
|
||||
}
|
||||
$this->app->erp->insertDefaultUserRights($newUserId);
|
||||
if($vorlage !== '') {
|
||||
$this->app->erp->AbgleichBenutzerVorlagen($newUserId);
|
||||
|
@ -794,50 +794,26 @@ class Zahlungsweisen {
|
||||
}
|
||||
}
|
||||
|
||||
if($this->app->erp->isIoncube() && $this->app->Secure->GetPOST('testen')) {
|
||||
$modul = $this->app->Secure->GetPOST('modul');
|
||||
if($modul) {
|
||||
$testapp = $modul;
|
||||
if(is_file(dirname(__DIR__).'/update.php')) {
|
||||
$result = '';
|
||||
include_once dirname(__DIR__).'/update.php';
|
||||
if($result === 'OK') {
|
||||
$this->app->Tpl->Add(
|
||||
'MESSAGE',
|
||||
'<div class="info">Das Modul wurde zum Testen angefragt. Bitte update xentral in
|
||||
frühestens 10 Minuten um das Modul zu laden</div>'
|
||||
);
|
||||
}
|
||||
else{
|
||||
$this->app->Tpl->Add(
|
||||
'MESSAGE',
|
||||
'<div class="error">Es ist ein Fehler beim Updaten aufgetreten: '.$result.'</div>');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
$get = $this->app->Secure->GetGET('get');
|
||||
if($get && $module){
|
||||
if(isset($module['kauf'])){
|
||||
foreach($module['kauf'] as $k => $v) {
|
||||
if($v['md5'] == $get){
|
||||
$mods = $this->app->erp->getAppList();
|
||||
foreach($mods as $k2 => $v2) {
|
||||
if(md5($v2['Bezeichnung']) == $get){
|
||||
$this->app->Tpl->Add(
|
||||
'MESSAGE',
|
||||
'<div class="info">Bitte bestätigen: <form method="POST" action="index.php?module=versandarten&action=create"><input type="hidden" name="modul" value="'.$k2.'" /><input type="submit" style="float:right;" value="Testmodul '.$v2['Bezeichnung'].' anfragen" name="testen" /></form></div>'
|
||||
);
|
||||
break;
|
||||
}
|
||||
$get = $this->app->Secure->GetGET('get');
|
||||
if($get && $module){
|
||||
if(isset($module['kauf'])){
|
||||
foreach($module['kauf'] as $k => $v) {
|
||||
if($v['md5'] == $get){
|
||||
$mods = $this->app->erp->getAppList();
|
||||
foreach($mods as $k2 => $v2) {
|
||||
if(md5($v2['Bezeichnung']) == $get){
|
||||
$this->app->Tpl->Add(
|
||||
'MESSAGE',
|
||||
'<div class="info">Bitte bestätigen: <form method="POST" action="index.php?module=versandarten&action=create"><input type="hidden" name="modul" value="'.$k2.'" /><input type="submit" style="float:right;" value="Testmodul '.$v2['Bezeichnung'].' anfragen" name="testen" /></form></div>'
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$modullist = $this->getApps();
|
||||
/** @var Appstore $appstore */
|
||||
$appstore = $this->app->loadModule('appstore');
|
||||
|
@ -354,25 +354,6 @@
|
||||
$ret[] = $tmp;
|
||||
}
|
||||
|
||||
if(!function_exists('ioncube_loader_version'))
|
||||
{
|
||||
$tmp['status'] = 'warning';
|
||||
$tmp['text'] = 'Ioncube ist nicht installiert (Eine Installation ist trotzdem möglich)';
|
||||
$ret[] = $tmp;
|
||||
} else {
|
||||
$ioncube_loader_version = ioncube_loader_version();
|
||||
if($ioncube_loader_version[0]< 5 && $ioncube_loader_version[1] == '.')
|
||||
{
|
||||
$tmp['status'] = 'warning';
|
||||
$tmp['text'] = 'Die Ioncubeversion ist zu alt (Eine Installation ist trotzdem möglich)';
|
||||
$ret[] = $tmp;
|
||||
}else{
|
||||
$tmp['status'] = 'ok';
|
||||
$tmp['text'] = 'Ioncube verfügbar';
|
||||
$ret[] = $tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if(!file_exists("../../database/struktur.sql"))
|
||||
{
|
||||
$tmp['status'] = 'error';
|
||||
|
@ -21,14 +21,6 @@
|
||||
<div class="header-headlines">
|
||||
<p>{|Hilfe & Ressourcen|}</p>
|
||||
<strong>[INLINEHELPHEADING]</strong>
|
||||
[BEFORESUPPORTPHONE]
|
||||
<a class="inlinehelphonenumber" href="[SUPPORTPHONENUMBERLINK]" data-phonenumber="[SUPPORTPHONENUMBER]" data-sipgate="[SIPGATEACTIVE]">
|
||||
<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M25.5 13C25.5 19.9036 19.9036 25.5 13 25.5C6.09644 25.5 0.5 19.9036 0.5 13C0.5 6.09644 6.09644 0.5 13 0.5C19.9036 0.5 25.5 6.09644 25.5 13Z" stroke="#2DCA73"/>
|
||||
<path d="M18.3333 15.2053C17.1827 15.2053 16.0853 14.9547 15.0733 14.46C14.9147 14.384 14.7307 14.372 14.5627 14.4293C14.3947 14.488 14.2573 14.6107 14.18 14.7693L13.7 15.7627C12.26 14.936 11.0653 13.74 10.2373 12.3L11.232 11.82C11.392 11.7427 11.5133 11.6053 11.572 11.4373C11.6293 11.2693 11.6187 11.0853 11.5413 10.9267C11.0453 9.916 10.7947 8.81867 10.7947 7.66667C10.7947 7.29867 10.496 7 10.128 7H7.66667C7.29867 7 7 7.29867 7 7.66667C7 13.916 12.084 19 18.3333 19C18.7013 19 19 18.7013 19 18.3333V15.872C19 15.504 18.7013 15.2053 18.3333 15.2053Z" fill="#2DCA73"/>
|
||||
</svg>
|
||||
</a>
|
||||
[AFTERSUPPORTPHONE]
|
||||
</div>
|
||||
</div>
|
||||
[BEFOREINLINEMENU]
|
||||
|
@ -296,17 +296,6 @@ class WidgetShopexport extends WidgetGenShopexport
|
||||
}
|
||||
}
|
||||
}
|
||||
$err = null;
|
||||
if($altedaten && $this->app->Secure->GetPOST('aktiv') && method_exists($this->app->erp, 'OnlineshopsLizenzFehler'))
|
||||
{
|
||||
if($err = $this->app->erp->OnlineshopsLizenzFehler($data['modulename']))
|
||||
{
|
||||
$this->app->DB->Update("UPDATE shopexport SET aktiv = '0' WHERE id = '$id' LIMIT 1");
|
||||
$this->form->HTMLList['aktiv']->dbvalue = 0;
|
||||
$this->form->HTMLList['aktiv']->htmlvalue = 0;
|
||||
$this->app->User->SetParameter('shopexport_meldung', '<div class="error">'.$err['Error'].'</div>');
|
||||
}
|
||||
}
|
||||
$this->app->erp->RunHook('shopexport_speichern',1, $id);
|
||||
}
|
||||
}else
|
||||
|
Loading…
Reference in New Issue
Block a user