add 6.0.1.0 sourceGuardian PHP 8
This commit is contained in:
commit
b9b8dacd3c
36
.php-cs-fixer.php
Normal file
36
.php-cs-fixer.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__)
|
||||
;
|
||||
|
||||
$header = <<<EOF
|
||||
Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
|
||||
For the full copyright and license information, please view
|
||||
the LICENSE file that was distributed with this source code.
|
||||
|
||||
https://www.d3data.de
|
||||
|
||||
@copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
@author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
@link https://www.oxidmodule.com
|
||||
EOF;
|
||||
|
||||
$config = new PhpCsFixer\Config();
|
||||
return $config->setRules([
|
||||
'@PHP80Migration' => true,
|
||||
'@PSR12' => true,
|
||||
'header_comment' => [
|
||||
'comment_type' => 'PHPDoc',
|
||||
'header' => $header,
|
||||
'location' => 'after_open',
|
||||
'separate' => 'both',
|
||||
],
|
||||
'php_unit_test_class_requires_covers' => true,
|
||||
'doctrine_annotation_indentation' => true,
|
||||
])
|
||||
->setFinder($finder)
|
||||
;
|
47
Application/Controller/Admin/d3AdminMall.php
Normal file
47
Application/Controller/Admin/d3AdminMall.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
|
||||
use OxidEsales\Eshop\Application\Controller\Admin\AdminMall;
|
||||
|
||||
// @codeCoverageIgnoreStart
|
||||
// fallback for non ee editions
|
||||
if (! class_exists('\\' . AdminMall::class)) {
|
||||
class d3AdminMall extends AdminDetailsController
|
||||
{
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_mall';
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
parent::render();
|
||||
return $this->_sThisTemplate;
|
||||
}
|
||||
|
||||
public function assignToSubshops()
|
||||
{
|
||||
}
|
||||
}
|
||||
} else {
|
||||
class d3AdminMall extends AdminMall
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
35
Application/Controller/Admin/d3_cfg_usermanageritem.php
Normal file
35
Application/Controller/Admin/d3_cfg_usermanageritem.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_list as itemList;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_main as itemMain;
|
||||
|
||||
class d3_cfg_usermanageritem extends d3_cfg_mod_
|
||||
{
|
||||
public function render(): string
|
||||
{
|
||||
$this->addTplParam('sListClass', itemList::class);
|
||||
$this->addTplParam('sMainClass', itemMain::class);
|
||||
|
||||
$this->_hasListItems = true;
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
}
|
310
Application/Controller/Admin/d3_cfg_usermanageritem_action.php
Normal file
310
Application/Controller/Admin/d3_cfg_usermanageritem_action.php
Normal file
@ -0,0 +1,310 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\Usermanager\Application\Model\Actions\d3usermanager_action_interface as ActionModelInterface;
|
||||
use D3\Usermanager\Application\Model\Actions\d3usermanager_actiongrouplist as ActionGroupList;
|
||||
use D3\Usermanager\Application\Model\Actions\d3usermanager_actionlist as ActionList;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_actionException;
|
||||
use DateTime;
|
||||
use Doctrine\DBAL\Exception as DoctrineException;
|
||||
use Doctrine\DBAL\Query\QueryBuilder;
|
||||
use OxidEsales\Eshop\Application\Model\ContentList;
|
||||
use OxidEsales\Eshop\Application\Model\User as Item;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Model\ListModel;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_settings as ItemSettingsController;
|
||||
use OxidEsales\Eshop\Core\UtilsView;
|
||||
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface;
|
||||
|
||||
class d3_cfg_usermanageritem_action extends ItemSettingsController
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_action';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
|
||||
protected $_sSavedId;
|
||||
|
||||
protected $_sExportFieldDescMLIdent = 'D3_USERMANAGER_FIELDDESC';
|
||||
|
||||
protected $_sExportFieldTitleBaseMLIdent = 'D3_USERMANAGER_FIELDTITLE_';
|
||||
|
||||
protected $_sExportFieldLangMLIdent = 'D3_USERMANAGER_FIELDADD_LANG';
|
||||
|
||||
/**
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
*/
|
||||
public function save(): void
|
||||
{
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!defined('OXID_PHP_UNIT')) {
|
||||
parent::save();
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
$aMissingRequiredValues = [];
|
||||
/** @var ActionModelInterface $oAction */
|
||||
foreach ($this->getActionList() as $sId => $oAction) {
|
||||
if ($this->getProfile()->getValue($oAction->getActiveSwitchParameter())) {
|
||||
try {
|
||||
$oAction->throwUnvalidConfigurationException();
|
||||
} catch (d3usermanager_actionException $e) {
|
||||
unset($e);
|
||||
$aMissingRequiredValues[] = $sId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($aMissingRequiredValues !== []) {
|
||||
$this->addTplParam('missingRequValuesActions', $aMissingRequiredValues);
|
||||
}
|
||||
}
|
||||
|
||||
public function getContentList(): ListModel
|
||||
{
|
||||
/** @var $oContentList ContentList */
|
||||
$oContentList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.ContentList::class);
|
||||
return $this->_getObjectList($oContentList);
|
||||
}
|
||||
|
||||
public function d3GetConfig(): Config
|
||||
{
|
||||
/** @var Config $config */
|
||||
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function getItemFieldNames(): array
|
||||
{
|
||||
/** @var Item $item */
|
||||
$item = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Item::class);
|
||||
return $item->getFieldNames();
|
||||
}
|
||||
|
||||
public function getProfile(): Manager
|
||||
{
|
||||
/** @var Manager $oProfile */
|
||||
$oProfile = d3GetOxidDIC()->get(Manager::class);
|
||||
|
||||
$soxId = $this->getEditObjectId();
|
||||
|
||||
if ($soxId != "-1") {
|
||||
// load object
|
||||
$oProfile->loadInLang($this->_iEditLang, $soxId);
|
||||
|
||||
// load object in other languages
|
||||
$oOtherLang = $oProfile->getAvailableInLangs();
|
||||
if (!isset($oOtherLang[$this->_iEditLang])) {
|
||||
$oProfile->loadInLang(key($oOtherLang), $soxId);
|
||||
}
|
||||
}
|
||||
|
||||
return $oProfile;
|
||||
}
|
||||
|
||||
public function getExportExamplePath(): string
|
||||
{
|
||||
$oProfile = $this->getProfile();
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$soxId = $request->getRequestEscapedParameter("oxid");
|
||||
|
||||
if (isset($soxId) && $soxId && $soxId != "-1") {
|
||||
// load object
|
||||
$oProfile->loadInLang($this->_iEditLang, $soxId);
|
||||
$oProfile = $this->_d3LoadInOtherLang($oProfile, $soxId);
|
||||
}
|
||||
|
||||
$aSearch = [(new DateTime())->setTimestamp($oProfile->getStartTime())->format('Y-m-d_H-i-s')];
|
||||
/** @var Language $oLang */
|
||||
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
$aReplace = [$oLang->translateString('D3_USERMANAGER_ACTION_DATEPLACEHOLDER')];
|
||||
|
||||
return str_replace($aSearch, $aReplace, $oProfile->getListExportFilePath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sFieldName
|
||||
*/
|
||||
public function getFieldNameDescription($sFieldName): string
|
||||
{
|
||||
if (($sFieldNameTitle = $this->getFieldNameTitle($sFieldName))) {
|
||||
return sprintf(
|
||||
$this->getLang()->translateString($this->_sExportFieldDescMLIdent),
|
||||
$sFieldNameTitle,
|
||||
$sFieldName
|
||||
);
|
||||
}
|
||||
|
||||
return $sFieldName;
|
||||
}
|
||||
|
||||
public function getLang(): Language
|
||||
{
|
||||
/** @var Language $language */
|
||||
$language = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
return $language;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sFieldName
|
||||
*/
|
||||
public function getFieldNameTitle($sFieldName): ?string
|
||||
{
|
||||
$sLangAdd = '';
|
||||
$sPattern = "@(.*)([_]([0-9]{1,3}))$@";
|
||||
if (preg_match($sPattern, $sFieldName, $aMatches)) {
|
||||
$sFieldMLIdent = $this->_sExportFieldTitleBaseMLIdent.strtoupper($aMatches[1]);
|
||||
$aLangNames = $this->getLang()->getLanguageNames();
|
||||
$sLangAdd = sprintf(
|
||||
$this->getLang()->translateString($this->_sExportFieldLangMLIdent),
|
||||
$aLangNames[$aMatches[3]]
|
||||
);
|
||||
} else {
|
||||
$sFieldMLIdent = $this->_sExportFieldTitleBaseMLIdent.strtoupper($sFieldName);
|
||||
}
|
||||
|
||||
$sFieldName = $this->getLang()->translateString($sFieldMLIdent);
|
||||
|
||||
if ($sFieldName != $sFieldMLIdent) {
|
||||
return $sFieldName.$sLangAdd;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getActionGroupList(): ActionGroupList
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ActionGroupList::class.'.args.usermanager',
|
||||
$this->getProfile()
|
||||
);
|
||||
d3GetOxidDIC()->set(
|
||||
ActionGroupList::class.'.args.user',
|
||||
d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Item::class)
|
||||
);
|
||||
|
||||
/** @var ActionGroupList $actiongroup */
|
||||
$actiongroup = d3GetOxidDIC()->get(ActionGroupList::class);
|
||||
|
||||
return $actiongroup;
|
||||
}
|
||||
|
||||
public function getActionListObject(): ActionList
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ActionList::class.'.args.usermanager',
|
||||
$this->getProfile()
|
||||
);
|
||||
d3GetOxidDIC()->set(
|
||||
ActionList::class.'.args.user',
|
||||
d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Item::class)
|
||||
);
|
||||
|
||||
/** @var ActionList $actionlist */
|
||||
$actionlist = d3GetOxidDIC()->get(ActionList::class);
|
||||
return $actionlist;
|
||||
}
|
||||
|
||||
public function getGroupedActionList(): array
|
||||
{
|
||||
$oManager = $this->getProfile();
|
||||
$oActionList = $this->getActionGroupList();
|
||||
$oActionList->setGroups($oManager->getConfiguration()->getGroupedActionIdList());
|
||||
|
||||
return $oActionList->getGroupList();
|
||||
}
|
||||
|
||||
public function getActionList(): array
|
||||
{
|
||||
$oManager = $this->getProfile();
|
||||
$oActionList = $this->getActionListObject();
|
||||
$oActionList->setActions($oManager->getConfiguration()->getActionIdList());
|
||||
|
||||
return $oActionList->getActionList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $soxId
|
||||
*
|
||||
*/
|
||||
protected function _d3LoadInOtherLang(Manager $oProfile, $soxId): Manager
|
||||
{
|
||||
// load object in other languages
|
||||
$oOtherLang = $oProfile->getAvailableInLangs();
|
||||
if (!isset($oOtherLang[$this->_iEditLang])) {
|
||||
$oProfile->loadInLang(key($oOtherLang), $soxId);
|
||||
}
|
||||
|
||||
return $oProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws DoctrineException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function markAsFinished(): void
|
||||
{
|
||||
$oProfile = $this->getProfile();
|
||||
|
||||
/** @var QueryBuilder $queryBuilder */
|
||||
$queryBuilder = ContainerFactory::getInstance()->getContainer()->get(QueryBuilderFactoryInterface::class)->create();
|
||||
$queryBuilder->select('count(*)')
|
||||
->from(d3GetOxidDIC()->get('d3ox.usermanager.'.Item::class)->getViewName());
|
||||
$iAllCount = $queryBuilder->execute()->fetchOne();
|
||||
|
||||
$iCount = $oProfile->markConcernedItemsAsFinished(true);
|
||||
|
||||
$oEx = oxNew(
|
||||
StandardException::class,
|
||||
sprintf(
|
||||
Registry::getLang()->translateString('D3_USERMANAGER_ACTION_MARKASFINISHED_MESSAGE'),
|
||||
$iCount,
|
||||
$iAllCount
|
||||
)
|
||||
);
|
||||
Registry::get(UtilsView::class)->addErrorToDisplay($oEx);
|
||||
}
|
||||
}
|
38
Application/Controller/Admin/d3_cfg_usermanageritem_list.php
Normal file
38
Application/Controller/Admin/d3_cfg_usermanageritem_list.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanagerlist as ManagerList;
|
||||
|
||||
class d3_cfg_usermanageritem_list extends d3_cfg_mod_list
|
||||
{
|
||||
protected $_sListClass = Manager::class;
|
||||
|
||||
protected $_sListType = ManagerList::class;
|
||||
|
||||
protected $_blShowListItems = true;
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_list';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
}
|
123
Application/Controller/Admin/d3_cfg_usermanageritem_main.php
Normal file
123
Application/Controller/Admin/d3_cfg_usermanageritem_main.php
Normal file
@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
|
||||
class d3_cfg_usermanageritem_main extends d3_cfg_mod_main
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sSavedId;
|
||||
|
||||
protected $_sSetModId = 'd3usermanager';
|
||||
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_main';
|
||||
|
||||
protected $_blUseOwnOxid = true;
|
||||
|
||||
protected $_aNaviItems = [
|
||||
'new' => [
|
||||
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
'sTranslationId' => 'D3_TOOLTIPS_NEWUSERMANAGER',
|
||||
],
|
||||
];
|
||||
|
||||
protected $_sD3ObjectClass = Manager::class;
|
||||
|
||||
/**
|
||||
* Loads article parameters and passes them to template engine, returns
|
||||
* name of template file "article_main.tpl".
|
||||
*
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function render(): string
|
||||
{
|
||||
$sRet = parent::render();
|
||||
|
||||
/** @var Config $config */
|
||||
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
|
||||
|
||||
$this->addTplParam("blUseTimeCheck", $config->getConfigParam('blUseTimeCheck'));
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets default values for empty article (currently does nothing), returns
|
||||
* array with parameters.
|
||||
*
|
||||
* @param array $aParams Parameters, to set default values
|
||||
*/
|
||||
public function addDefaultValues($aParams): array
|
||||
{
|
||||
$aParams = parent::addDefaultValues($aParams);
|
||||
|
||||
/** @var Manager $oManager */
|
||||
$oManager = d3GetOxidDIC()->get(Manager::class);
|
||||
$sFieldLongName = $oManager->d3GetFieldLongName('d3_cronjobid');
|
||||
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$aRequestParameter = $request->getRequestEscapedParameter("editval");
|
||||
|
||||
if (is_array($aRequestParameter) && isset($aRequestParameter[$sFieldLongName])) {
|
||||
$aRequestParameter[$sFieldLongName] = $this->fixCronjobId($aRequestParameter[$sFieldLongName]);
|
||||
if (isset($_POST['editval'])) {
|
||||
$_POST['editval'] = $aRequestParameter;
|
||||
} elseif (isset($_GET['editval'])) {
|
||||
$_GET['editval'] = $aRequestParameter;
|
||||
}
|
||||
}
|
||||
|
||||
return $aParams;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sId
|
||||
*/
|
||||
public function fixCronjobId($sId): string|array
|
||||
{
|
||||
$aSearch = [
|
||||
' ',
|
||||
];
|
||||
$sReplace = '_';
|
||||
|
||||
return str_replace($aSearch, $sReplace, $sId);
|
||||
}
|
||||
}
|
189
Application/Controller/Admin/d3_cfg_usermanageritem_mall.php
Normal file
189
Application/Controller/Admin/d3_cfg_usermanageritem_mall.php
Normal file
@ -0,0 +1,189 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Model\d3filesystem;
|
||||
use D3\ModCfg\Application\Model\d3str;
|
||||
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class d3_cfg_usermanageritem_mall extends d3AdminMall
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
private string $_sModId = 'd3usermanager';
|
||||
|
||||
/**
|
||||
* DB table having oxshopincl and oxshopexcl fields we are going to deal with
|
||||
*/
|
||||
protected $_sMallTable = "d3modprofile";
|
||||
|
||||
protected $_blUseOwnOxid = true;
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items_mall';
|
||||
|
||||
protected $_sHelpLinkMLAdd;
|
||||
|
||||
protected $_aNaviItems = [
|
||||
'new' => [
|
||||
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
'sTranslationId' => 'D3_TOOLTIPS_NEWUSERMANAGER',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Class name of object to load
|
||||
*/
|
||||
protected $_sObjectClassName = Manager::class;
|
||||
|
||||
/**
|
||||
* constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
|
||||
throw oxNew(wrongModIdException::class, $this->_sModId);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getProfile(): Manager
|
||||
{
|
||||
/** @var Manager $oManager */
|
||||
$oManager = d3GetOxidDIC()->get($this->_sObjectClassName);
|
||||
return $oManager;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$oProfile = $this->getProfile();
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$soxId = $request->getRequestEscapedParameter("oxid");
|
||||
|
||||
if ($this->_isSetOxid($soxId)) {
|
||||
// load object
|
||||
$oProfile->loadInLang($this->_iEditLang, $soxId);
|
||||
$oProfile = $this->_d3LoadInOtherLang($oProfile, $soxId);
|
||||
}
|
||||
|
||||
$this->addTplParam('edit', $oProfile);
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
|
||||
public function getUserMessages(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function getLang(): Language
|
||||
{
|
||||
/** @var Language $lang */
|
||||
$lang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
return $lang;
|
||||
}
|
||||
|
||||
public function getHelpURL(): string
|
||||
{
|
||||
$sUrl = $this->d3GetSet()->getHelpURL();
|
||||
/** @var d3str $oD3Str */
|
||||
$oD3Str = d3GetOxidDIC()->get(d3str::class);
|
||||
|
||||
if ($this->_sHelpLinkMLAdd) {
|
||||
$sUrl .= $oD3Str->unprefixedslashit($this->getLang()->translateString($this->_sHelpLinkMLAdd));
|
||||
}
|
||||
|
||||
$oFS = d3GetOxidDIC()->get(d3filesystem::class);
|
||||
$aFileName = $oFS->splitFilename($sUrl);
|
||||
|
||||
// has no extension
|
||||
if (false == $aFileName['ext']) {
|
||||
return $oD3Str->trailingslashit($sUrl);
|
||||
}
|
||||
|
||||
return $sUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* return type can't defined, because of unmockable d3_cfg_mod class, use stdClass in test
|
||||
* @return d3_cfg_mod
|
||||
*/
|
||||
public function d3GetSet()
|
||||
{
|
||||
/** @var d3_cfg_mod $modcfg */
|
||||
$modcfg = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'modcfg');
|
||||
|
||||
return $modcfg;
|
||||
}
|
||||
|
||||
/**
|
||||
* exampleItem: array('new' => array(
|
||||
* 'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
* 'sTranslationId' => 'foo',
|
||||
* )
|
||||
*/
|
||||
public function getNaviItems(): array
|
||||
{
|
||||
return $this->_aNaviItems;
|
||||
}
|
||||
|
||||
public function d3GetMenuItemTitle(): string
|
||||
{
|
||||
return $this->_sMenuItemTitle;
|
||||
}
|
||||
|
||||
public function d3GetMenuSubItemTitle(): string
|
||||
{
|
||||
return $this->_sMenuSubItemTitle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $soxId
|
||||
*/
|
||||
protected function _isSetOxid($soxId): bool
|
||||
{
|
||||
return isset($soxId) && $soxId && $soxId != "-1";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $soxId
|
||||
*
|
||||
*/
|
||||
protected function _d3LoadInOtherLang(Manager $oProfile, $soxId): Manager
|
||||
{
|
||||
// load object in other languages
|
||||
$oOtherLang = $oProfile->getAvailableInLangs();
|
||||
|
||||
if (false == isset($oOtherLang[$this->_iEditLang])) {
|
||||
$oProfile->loadInLang(key($oOtherLang), $soxId);
|
||||
}
|
||||
|
||||
return $oProfile;
|
||||
}
|
||||
}
|
389
Application/Controller/Admin/d3_cfg_usermanageritem_overview.php
Normal file
389
Application/Controller/Admin/d3_cfg_usermanageritem_overview.php
Normal file
@ -0,0 +1,389 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_configurationcheck;
|
||||
use D3\Usermanager\Application\Model\Actions\d3usermanager_actionlist as ActionListModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3ActionRequirementAbstract;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3ActionRequirementInterface;
|
||||
use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementlist as RequirementListModel;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_action as ItemActionController;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_requ as ItemRequirementController;
|
||||
use Doctrine\DBAL\Exception as DoctrineException;
|
||||
use OxidEsales\Eshop\Application\Model\User as ItemModel;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
use OxidEsales\Eshop\Core\UtilsView;
|
||||
use ReflectionException;
|
||||
|
||||
class d3_cfg_usermanageritem_overview extends d3_cfg_mod_main
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sSetModId = 'd3usermanager';
|
||||
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_overview';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
|
||||
protected $_blUseOwnOxid = true;
|
||||
|
||||
protected $_aNaviItems = [
|
||||
'new' => [
|
||||
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
'sTranslationId' => 'D3_TOOLTIPS_NEWUSERMANAGER',
|
||||
],
|
||||
];
|
||||
|
||||
protected $_sD3ObjectClass = Manager::class;
|
||||
|
||||
protected $_sRequestData;
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
* @throws StandardException
|
||||
*/
|
||||
public function render(): string
|
||||
{
|
||||
try {
|
||||
d3GetOxidDIC()->set(
|
||||
d3usermanager_configurationcheck::class.'.args.usermanager',
|
||||
$this->getManager()
|
||||
);
|
||||
/** @var d3usermanager_configurationcheck $confCheck */
|
||||
$confCheck = d3GetOxidDIC()->get(d3usermanager_configurationcheck::class);
|
||||
$confCheck->checkThrowingExceptions(d3usermanager_configurationcheck::REQUIREMENTS_AND_ACTIONS);
|
||||
} catch (d3ActionRequirementInterface $d3ActionRequirement) {
|
||||
/** @var UtilsView $utilsView */
|
||||
$utilsView = d3GetOxidDIC()->get('d3ox.usermanager.'.UtilsView::class);
|
||||
$utilsView->addErrorToDisplay($d3ActionRequirement);
|
||||
}
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
|
||||
public function getActionAdminController(): ItemActionController
|
||||
{
|
||||
/** @var ItemActionController $action */
|
||||
$action = d3GetOxidDIC()->get(ItemActionController::class);
|
||||
return $action;
|
||||
}
|
||||
|
||||
public function getRequirementAdminController(): ItemRequirementController
|
||||
{
|
||||
/** @var ItemRequirementController $requ */
|
||||
$requ = d3GetOxidDIC()->get(ItemRequirementController::class);
|
||||
return $requ;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $method
|
||||
* @param $arguments
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $arguments)
|
||||
{
|
||||
$oActionView = $this->getActionAdminController();
|
||||
if (method_exists($oActionView, $method)) {
|
||||
return call_user_func_array([ $oActionView, $method], $arguments);
|
||||
}
|
||||
|
||||
$oRequView = $this->getRequirementAdminController();
|
||||
if (method_exists($oRequView, $method)) {
|
||||
return call_user_func_array([ $oRequView, $method], $arguments);
|
||||
}
|
||||
|
||||
return parent::__call($method, $arguments);
|
||||
}
|
||||
|
||||
public function getRequirementListObject(Manager $oManager): RequirementListModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
RequirementListModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var RequirementListModel $requList */
|
||||
$requList = d3GetOxidDIC()->get(RequirementListModel::class);
|
||||
return $requList;
|
||||
}
|
||||
|
||||
public function getRequirementList(): array
|
||||
{
|
||||
/** @var Manager $oManager */
|
||||
$oManager = $this->getProfile();
|
||||
$oRequList = $this->getRequirementListObject($oManager);
|
||||
$oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList());
|
||||
|
||||
return $oRequList->getRequirementList();
|
||||
}
|
||||
|
||||
public function getActionListObject(Manager $oManager): ActionListModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ActionListModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
d3GetOxidDIC()->set(
|
||||
ActionListModel::class.'.args.user',
|
||||
d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.ItemModel::class)
|
||||
);
|
||||
|
||||
/** @var ActionListModel $actionlist */
|
||||
$actionlist = d3GetOxidDIC()->get(ActionListModel::class);
|
||||
return $actionlist;
|
||||
}
|
||||
|
||||
public function getActionList(): array
|
||||
{
|
||||
/** @var Manager $oManager */
|
||||
$oManager = $this->getProfile();
|
||||
$oActionList = $this->getActionListObject($oManager);
|
||||
$oActionList->setActions($oManager->getConfiguration()->getActionIdList());
|
||||
|
||||
return $oActionList->getActionList();
|
||||
}
|
||||
|
||||
public function isEditMode(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public function setRequestData(): void
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$this->_sRequestData = $request->getRequestEscapedParameter('sRequestData');
|
||||
}
|
||||
|
||||
protected function _getRequestData(): string
|
||||
{
|
||||
return $this->_sRequestData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws DoctrineException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function getToFinishedCount(): int
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$requestCount = $request->getRequestEscapedParameter('toFinishedCount');
|
||||
if ($this->canRequestData(__FUNCTION__)) {
|
||||
/** @var Manager $oProfile */
|
||||
$oProfile = $this->getProfile();
|
||||
return $oProfile->getListGenerator()->getConcernedItemCount();
|
||||
}
|
||||
|
||||
if ($this->canUseRequestData($requestCount)) {
|
||||
return (int) $requestCount;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function getFinishedCount(): int
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$requestCount = $request->getRequestEscapedParameter('finishedCount');
|
||||
if ($this->canRequestData(__FUNCTION__)) {
|
||||
/** @var Manager $oProfile */
|
||||
$oProfile = $this->getProfile();
|
||||
return $oProfile->getListGenerator()->getFinishedItemCount();
|
||||
}
|
||||
|
||||
if ($this->canUseRequestData($requestCount)) {
|
||||
return (int) $requestCount;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function getFinishedMonthCount(): int
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$requestCount = $request->getRequestEscapedParameter('finishedMonthCount');
|
||||
if ($this->canRequestData(__FUNCTION__)) {
|
||||
/** @var Manager $oProfile */
|
||||
$oProfile = $this->getProfile();
|
||||
return $oProfile->getListGenerator()->getFinishedMonthItemCount();
|
||||
}
|
||||
|
||||
if ($this->canUseRequestData($requestCount)) {
|
||||
return (int) $requestCount;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function getNotFinishedCount(): int
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$requestCount = $request->getRequestEscapedParameter('notFinishedCount');
|
||||
if ($this->canRequestData(__FUNCTION__)) {
|
||||
/** @var Manager $oProfile */
|
||||
$oProfile = $this->getProfile();
|
||||
return $oProfile->getListGenerator()->getNotFinishedItemCount();
|
||||
}
|
||||
|
||||
if ($this->canUseRequestData($requestCount)) {
|
||||
return (int) $requestCount;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sFunctionName
|
||||
*
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
*/
|
||||
public function canRequestData($sFunctionName): bool
|
||||
{
|
||||
if (!$this->getDataOnDemand()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return $this->_getRequestData() == $sFunctionName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $requestCount
|
||||
*
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
*/
|
||||
public function canUseRequestData($requestCount): bool
|
||||
{
|
||||
return $this->getDataOnDemand()
|
||||
&& isset($requestCount) && false !== $requestCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
*/
|
||||
public function getDataOnDemand(): bool
|
||||
{
|
||||
return (bool) $this->d3GetSet()->getValue('blCalcStatOnDemand');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sRequestName
|
||||
* @param $sFunctionName
|
||||
*/
|
||||
public function hasRequestedData($sRequestName, $sFunctionName): bool
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$iRequestCount = (string) $request->getRequestEscapedParameter($sRequestName);
|
||||
return strlen($iRequestCount) || $this->_getRequestData() == $sFunctionName;
|
||||
}
|
||||
|
||||
public function getManager(): Manager
|
||||
{
|
||||
/** @var Manager $manager */
|
||||
$manager = d3GetOxidDIC()->get(Manager::class);
|
||||
$manager->load($this->getEditObjectId());
|
||||
return $manager;
|
||||
}
|
||||
|
||||
public function getLang(): Language
|
||||
{
|
||||
/** @var Language $lang */
|
||||
$lang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
return $lang;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sManagerId
|
||||
*/
|
||||
public function getManagerTitle(string $sManagerId): string
|
||||
{
|
||||
$oManager = $this->getManager();
|
||||
if ($oManager->load($sManagerId)) {
|
||||
return $oManager->getFieldData('oxtitle');
|
||||
}
|
||||
|
||||
return $this->getLang()->translateString('D3_USERMANAGER_REQU_OTHERJOB_UNKNOWNJOBID').' "'.$sManagerId.'"';
|
||||
}
|
||||
}
|
177
Application/Controller/Admin/d3_cfg_usermanageritem_requ.php
Normal file
177
Application/Controller/Admin/d3_cfg_usermanageritem_requ.php
Normal file
@ -0,0 +1,177 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanagerlist as ManagerList;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_requirementException;
|
||||
use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirement_interface as RequirementModelInterface;
|
||||
use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementgrouplist as RequirementGroupListModel;
|
||||
use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementlist as RequirementListModel;
|
||||
use OxidEsales\Eshop\Application\Model\DeliveryList;
|
||||
use OxidEsales\Eshop\Application\Model\PaymentList;
|
||||
use OxidEsales\Eshop\Application\Model\CountryList;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Model\ListModel;
|
||||
|
||||
class d3_cfg_usermanageritem_requ extends d3_cfg_usermanageritem_settings
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_requ';
|
||||
|
||||
protected $_aTransStatus = ['OK', 'ERROR', 'NOT_OK'];
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
|
||||
public function save(): void
|
||||
{
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!defined('OXID_PHP_UNIT')) {
|
||||
parent::save();
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
$aMissingRequiredValues = [];
|
||||
/** @var RequirementModelInterface $oRequirement */
|
||||
foreach ($this->getRequirementList() as $sId => $oRequirement) {
|
||||
if ($this->getProfile()->getValue($oRequirement->getActiveSwitchParameter())) {
|
||||
try {
|
||||
$oRequirement->throwUnvalidConfigurationException();
|
||||
} catch (d3usermanager_requirementException $e) {
|
||||
unset($e);
|
||||
$aMissingRequiredValues[] = $sId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($aMissingRequiredValues !== []) {
|
||||
$this->addTplParam('missingRequValuesActions', $aMissingRequiredValues);
|
||||
}
|
||||
}
|
||||
|
||||
public function d3GetConfig(): Config
|
||||
{
|
||||
/** @var Config $config */
|
||||
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
public function getPaymentList(): ListModel
|
||||
{
|
||||
/** @var PaymentList $oPaymentList */
|
||||
$oPaymentList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.PaymentList::class);
|
||||
return $this->_getObjectList($oPaymentList, null, 'oxdesc ASC');
|
||||
}
|
||||
|
||||
public function getDeliveryList(): ListModel
|
||||
{
|
||||
/** @var DeliveryList $oDeliveryList */
|
||||
$oDeliveryList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.DeliveryList::class);
|
||||
return $this->_getObjectList($oDeliveryList, null, 'oxtitle ASC');
|
||||
}
|
||||
|
||||
public function getCountryList(): ListModel
|
||||
{
|
||||
/** @var CountryList $oCountryList */
|
||||
$oCountryList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.CountryList::class);
|
||||
return $this->_getObjectList($oCountryList, null, 'oxtitle ASC');
|
||||
}
|
||||
|
||||
public function getJobList(): ManagerList
|
||||
{
|
||||
$sCurrentId = $this->getViewDataElement('edit')->getId();
|
||||
/** @var $oManagerList ManagerList */
|
||||
$oManagerList = d3GetOxidDIC()->get(ManagerList::class);
|
||||
$oManagerList->setCustomSorting('oxsort ASC');
|
||||
$oManagerList->getList();
|
||||
$oManagerList->offsetUnset($sCurrentId);
|
||||
return $oManagerList;
|
||||
}
|
||||
|
||||
public function getLanguageList(): array
|
||||
{
|
||||
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
return $oLang->getLanguageArray();
|
||||
}
|
||||
|
||||
public function getTransStatusList(): array
|
||||
{
|
||||
return $this->_aTransStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets default values for empty article (currently does nothing), returns
|
||||
* array with parameters.
|
||||
*
|
||||
* @param array $aParams Parameters, to set default values
|
||||
*/
|
||||
public function addDefaultValues($aParams): array
|
||||
{
|
||||
return $aParams;
|
||||
}
|
||||
|
||||
public function getRequirementGroupList(Manager $oManager): RequirementGroupListModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
RequirementGroupListModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var RequirementGroupListModel $requGroupModel */
|
||||
$requGroupModel = d3GetOxidDIC()->get(RequirementGroupListModel::class);
|
||||
return $requGroupModel;
|
||||
}
|
||||
|
||||
public function getRequirementListObject(Manager $oManager): RequirementListModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
RequirementListModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var RequirementListModel $requListModel */
|
||||
$requListModel = d3GetOxidDIC()->get(RequirementListModel::class);
|
||||
return $requListModel;
|
||||
}
|
||||
|
||||
public function getGroupedRequirementList(): array
|
||||
{
|
||||
/** @var Manager $oManager */
|
||||
$oManager = $this->getProfile();
|
||||
$oRequList = $this->getRequirementGroupList($oManager);
|
||||
$oRequList->setGroups($oManager->getConfiguration()->getGroupedRequirementIdList());
|
||||
|
||||
return $oRequList->getGroupList();
|
||||
}
|
||||
|
||||
public function getRequirementList(): array
|
||||
{
|
||||
/** @var Manager $oManager */
|
||||
$oManager = $this->getProfile();
|
||||
$oRequList = $this->getRequirementListObject($oManager);
|
||||
$oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList());
|
||||
|
||||
return $oRequList->getRequirementList();
|
||||
}
|
||||
}
|
146
Application/Controller/Admin/d3_cfg_usermanageritem_settings.php
Normal file
146
Application/Controller/Admin/d3_cfg_usermanageritem_settings.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\ModCfg\Application\Model\d3database;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
|
||||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Model\ListModel;
|
||||
use OxidEsales\Eshop\Core\Model\MultiLanguageModel;
|
||||
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
class d3_cfg_usermanageritem_settings extends d3_cfg_mod_main
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_blUseOwnOxid = true;
|
||||
|
||||
protected $_aNaviItems = [
|
||||
'new' => [
|
||||
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
'sTranslationId' => 'D3_TOOLTIPS_NEWUSERMANAGER',
|
||||
],
|
||||
];
|
||||
|
||||
protected $_sD3ObjectClass = Manager::class;
|
||||
|
||||
/**
|
||||
* constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
|
||||
throw oxNew(wrongModIdException::class, $this->_sModId);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getGroupsList(): ListModel
|
||||
{
|
||||
/** @var $oGroupsList ListModel */
|
||||
$oGroupsList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.ListModel::class);
|
||||
$oGroupsList->init('oxgroups');
|
||||
return $this->_getObjectList($oGroupsList, null, 'oxtitle ASC');
|
||||
}
|
||||
|
||||
public function getDIContainer(): ContainerInterface
|
||||
{
|
||||
return ContainerFactory::getInstance()->getContainer();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param null|string $sWhere
|
||||
* @param null|string $sOrderBy
|
||||
*
|
||||
*/
|
||||
protected function _getObjectList(ListModel $oObjectList, $sWhere = null, $sOrderBy = null): ListModel
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
/** @var Language $oLang */
|
||||
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
/** @var MultiLanguageModel $oObject */
|
||||
$oObject = $oObjectList->getBaseObject();
|
||||
if ($oObject->isMultilang()) {
|
||||
$oObject->setLanguage($oLang->getTplLanguage());
|
||||
}
|
||||
|
||||
$sFieldList = $oObject->getSelectFields();
|
||||
|
||||
/** @var d3database $db */
|
||||
$db = d3GetOxidDIC()->get('d3.usermanager.database');
|
||||
$qb = $db->getQueryBuilder();
|
||||
$qb->select($sFieldList)
|
||||
->from($oObject->getViewName());
|
||||
|
||||
if ($sWhere) {
|
||||
$qb->add('where', $sWhere);
|
||||
}
|
||||
|
||||
if ($sOrderBy) {
|
||||
$qb->add('orderBy', $sOrderBy);
|
||||
}
|
||||
|
||||
$oObjectList->selectString($qb->getSQL(), $qb->getParameters());
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
|
||||
return $oObjectList;
|
||||
}
|
||||
|
||||
public function isEditMode(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function getRestrictionMessage(): string
|
||||
{
|
||||
/** @var Language $oLang */
|
||||
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
/** @var d3_cfg_mod $oModCfg */
|
||||
$oModCfg = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'modcfg');
|
||||
|
||||
return sprintf(
|
||||
$oLang->translateString('D3_USERMANAGER_ERROR_RESTRICTIONS'),
|
||||
$oModCfg->getLicenseConfigData('sEditionId', 'unknown')
|
||||
);
|
||||
}
|
||||
}
|
139
Application/Controller/Admin/d3_cfg_usermanageritem_trigger.php
Normal file
139
Application/Controller/Admin/d3_cfg_usermanageritem_trigger.php
Normal file
@ -0,0 +1,139 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_conf as ConfModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
|
||||
class d3_cfg_usermanageritem_trigger extends d3_cfg_mod_main
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sSavedId;
|
||||
|
||||
protected $_sSetModId = 'd3usermanager';
|
||||
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_items';
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanageritem_trigger';
|
||||
|
||||
protected $_blUseOwnOxid = true;
|
||||
|
||||
protected $_aNaviItems = [
|
||||
'new' => [
|
||||
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
|
||||
'sTranslationId' => 'D3_TOOLTIPS_NEWUSERMANAGER',
|
||||
],
|
||||
];
|
||||
|
||||
protected $_sD3ObjectClass = Manager::class;
|
||||
|
||||
/**
|
||||
* Sets default values for empty article (currently does nothing), returns
|
||||
* array with parameters.
|
||||
*
|
||||
* @param array $aParams Parameters, to set default values
|
||||
*/
|
||||
public function addDefaultValues($aParams): array
|
||||
{
|
||||
$aParams = parent::addDefaultValues($aParams);
|
||||
|
||||
/** @var Manager $oManager */
|
||||
$oManager = d3GetOxidDIC()->get(Manager::class);
|
||||
$sFieldLongName = $oManager->d3GetFieldLongName('d3_cronjobid');
|
||||
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$aRequestParameter = $request->getRequestEscapedParameter("editval");
|
||||
|
||||
if (is_array($aRequestParameter) && isset($aRequestParameter[$sFieldLongName])) {
|
||||
$aRequestParameter[$sFieldLongName] = $this->fixCronjobId($aRequestParameter[$sFieldLongName]);
|
||||
if (isset($_POST['editval'])) {
|
||||
$_POST['editval'] = $aRequestParameter;
|
||||
} elseif (isset($_GET['editval'])) {
|
||||
$_GET['editval'] = $aRequestParameter;
|
||||
}
|
||||
}
|
||||
|
||||
return $aParams;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sId
|
||||
*/
|
||||
public function fixCronjobId($sId): string|array
|
||||
{
|
||||
$aSearch = [
|
||||
' ',
|
||||
];
|
||||
$sReplace = '_';
|
||||
|
||||
return str_replace($aSearch, $sReplace, $sId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function triggersAreAllowed(): bool
|
||||
{
|
||||
if ($this->d3GetSet()->isDemo()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return in_array(
|
||||
true,
|
||||
array_map([$this->d3GetSet(),'getLicenseConfigData'], [ConfModel::SERIAL_BIT_STANDARD_EDITION])
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function scriptsAreAllowed(): bool
|
||||
{
|
||||
if ($this->d3GetSet()->isDemo()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return in_array(
|
||||
true,
|
||||
array_map([$this->d3GetSet(),'getLicenseConfigData'], [ConfModel::SERIAL_BIT_PREMIUM_EDITION])
|
||||
);
|
||||
}
|
||||
}
|
36
Application/Controller/Admin/d3_cfg_usermanagerlog.php
Normal file
36
Application/Controller/Admin/d3_cfg_usermanagerlog.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log;
|
||||
|
||||
class d3_cfg_usermanagerlog extends d3_cfg_log
|
||||
{
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
public function d3getAdditionalUrlParams(): string
|
||||
{
|
||||
$sRet = parent::d3getAdditionalUrlParams();
|
||||
|
||||
if ($this->_sModId) {
|
||||
$sRet .= '&sD3ModId='.$this->_sModId;
|
||||
}
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
}
|
25
Application/Controller/Admin/d3_cfg_usermanagerlog_list.php
Normal file
25
Application/Controller/Admin/d3_cfg_usermanagerlog_list.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log_list;
|
||||
|
||||
class d3_cfg_usermanagerlog_list extends d3_cfg_log_list
|
||||
{
|
||||
protected $_sModId = 'd3usermanager';
|
||||
}
|
35
Application/Controller/Admin/d3_cfg_usermanagerset.php
Normal file
35
Application/Controller/Admin/d3_cfg_usermanagerset.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanagerset_list as setListController;
|
||||
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanagerset_main as setMainController;
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_;
|
||||
|
||||
class d3_cfg_usermanagerset extends d3_cfg_mod_
|
||||
{
|
||||
public function render(): string
|
||||
{
|
||||
$this->addTplParam('sListClass', setListController::class);
|
||||
$this->addTplParam('sMainClass', setMainController::class);
|
||||
|
||||
$this->_hasListItems = false;
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_licence;
|
||||
|
||||
class d3_cfg_usermanagerset_licence extends d3_cfg_mod_licence
|
||||
{
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_hasNewsletterForm = false;
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_settings';
|
||||
}
|
42
Application/Controller/Admin/d3_cfg_usermanagerset_list.php
Normal file
42
Application/Controller/Admin/d3_cfg_usermanagerset_list.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list;
|
||||
|
||||
class d3_cfg_usermanagerset_list extends d3_cfg_mod_list
|
||||
{
|
||||
// enables language depended configuration
|
||||
protected $_blD3ShowLangSwitch = false;
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_settings';
|
||||
|
||||
public function render()
|
||||
{
|
||||
$sRet = parent::render();
|
||||
|
||||
// default page number 1
|
||||
$this->addTplParam('oxid', 1);
|
||||
$this->addTplParam("default_edit", "d3_cfg_usermanagerset_main");
|
||||
$this->addTplParam("updatemain", $this->_blUpdateMain);
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
}
|
220
Application/Controller/Admin/d3_cfg_usermanagerset_main.php
Normal file
220
Application/Controller/Admin/d3_cfg_usermanagerset_main.php
Normal file
@ -0,0 +1,220 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
|
||||
use D3\ModCfg\Application\Model\d3str;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
||||
use D3\ModCfg\Application\Model\Filegenerator\d3filegeneratorcronsh;
|
||||
use D3\ModCfg\Application\Model\Shopcompatibility\d3ShopCompatibilityAdapterHandler;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use Doctrine\DBAL\Exception as DoctrineException;
|
||||
use OxidEsales\Eshop\Application\Model\Shop;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
use OxidEsales\Eshop\Core\ViewConfig;
|
||||
|
||||
class d3_cfg_usermanagerset_main extends d3_cfg_mod_main
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
protected $_sModId = 'd3usermanager';
|
||||
|
||||
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_usermanagerset_main';
|
||||
|
||||
protected $_blHasDebugSwitch = true;
|
||||
|
||||
protected $_sDebugHelpTextIdent = 'D3_USERMANAGER_SET_DEBUG_DESC';
|
||||
|
||||
protected $_sMenuItemTitle = 'd3mxusermanager';
|
||||
|
||||
protected $_sMenuSubItemTitle = 'd3mxusermanager_settings';
|
||||
|
||||
/**
|
||||
* constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
|
||||
throw oxNew(wrongModIdException::class, $this->_sModId);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getManager(): Manager
|
||||
{
|
||||
/** @var Manager $manager */
|
||||
$manager = d3GetOxidDIC()->get(Manager::class);
|
||||
|
||||
return $manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* get basic cronjob access password; for cases only, if no password is set
|
||||
*/
|
||||
public function getBaseCronPW(): string
|
||||
{
|
||||
return $this->getManager()->getBaseCronPW();
|
||||
}
|
||||
|
||||
public function getViewConfig(): ViewConfig
|
||||
{
|
||||
// don't use DIC because of circular reference
|
||||
if ($this->_oViewConf === null) {
|
||||
$this->_oViewConf = oxNew(ViewConfig::class);
|
||||
}
|
||||
|
||||
return $this->_oViewConf;
|
||||
}
|
||||
|
||||
public function getD3Str(): d3str
|
||||
{
|
||||
/** @var d3str $d3str */
|
||||
$d3str = d3GetOxidDIC()->get(d3str::class);
|
||||
return $d3str;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool|int $iCronJobId
|
||||
*/
|
||||
public function getCronPath($iCronJobId = false): string
|
||||
{
|
||||
$sScriptPath = VENDOR_PATH.'bin/d3_usermanager_cron';
|
||||
|
||||
$aParameters = [
|
||||
'task' => 'run',
|
||||
'shp' => $this->getViewConfig()->getActiveShopId(),
|
||||
];
|
||||
|
||||
if ($iCronJobId !== false) {
|
||||
$aParameters['cjid'] = $iCronJobId;
|
||||
}
|
||||
|
||||
return 'php ' . $sScriptPath." ".implode(' ', $aParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DoctrineException
|
||||
*/
|
||||
public function getAvailableCronjobIds(): array
|
||||
{
|
||||
return $this->getManager()->getAvailableCronjobIds();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool|array $aCJID
|
||||
*/
|
||||
public function getCJIDDesc(array $aCJID): string
|
||||
{
|
||||
/** @var Language $oLang */
|
||||
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
if ($aCJID['count'] == 1) {
|
||||
return sprintf(
|
||||
$oLang->translateString('D3_USERMANAGER_SET_CRON_JOBID', null, true),
|
||||
$aCJID['id'],
|
||||
$aCJID['count']
|
||||
);
|
||||
}
|
||||
|
||||
return sprintf(
|
||||
$oLang->translateString('D3_USERMANAGER_SET_CRON_JOBSID', null, true),
|
||||
$aCJID['id'],
|
||||
$aCJID['count']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool|int $iCronJobId
|
||||
*/
|
||||
public function getCronTimestampVarName($iCronJobId = false): string
|
||||
{
|
||||
$sVarName = "sCronExecTimestamp";
|
||||
|
||||
if ($iCronJobId !== false) {
|
||||
$sVarName .= $iCronJobId;
|
||||
}
|
||||
|
||||
return $sVarName;
|
||||
}
|
||||
|
||||
public function getFileGeneratorCronSh(): d3filegeneratorcronsh
|
||||
{
|
||||
/** @var d3filegeneratorcronsh $filegenerator */
|
||||
$filegenerator = d3GetOxidDIC()->get(d3filegeneratorcronsh::class);
|
||||
|
||||
return $filegenerator;
|
||||
}
|
||||
|
||||
public function getCronProviderList(): array
|
||||
{
|
||||
return $this->getFileGeneratorCronSh()->getContentList();
|
||||
}
|
||||
|
||||
public function getCompatibilityAdapterHandler(): d3ShopCompatibilityAdapterHandler
|
||||
{
|
||||
/** @var d3ShopCompatibilityAdapterHandler $compatiblityHandler */
|
||||
$compatiblityHandler = d3GetOxidDIC()->get(d3ShopCompatibilityAdapterHandler::class);
|
||||
return $compatiblityHandler;
|
||||
}
|
||||
|
||||
public function d3GetActiveShop(): Shop
|
||||
{
|
||||
/** @var Config $config */
|
||||
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
|
||||
|
||||
return $config->getActiveShop();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function generateCronShFile(): void
|
||||
{
|
||||
$sScriptPath = VENDOR_PATH.'bin/d3_usermanager_cron';
|
||||
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$sCronId = $request->getRequestEscapedParameter('cronid');
|
||||
|
||||
$oShop = $this->d3GetActiveShop();
|
||||
$aParameters = [
|
||||
0 => 'run',
|
||||
1 => $oShop->getId(),
|
||||
2 => $sCronId,
|
||||
];
|
||||
|
||||
$oD3ShGenerator = $this->getFileGeneratorCronSh();
|
||||
$oD3ShGenerator->setContentType($request->getRequestEscapedParameter('crontype'));
|
||||
$oD3ShGenerator->setScriptPath($sScriptPath);
|
||||
$oD3ShGenerator->setSortedParameterList($aParameters);
|
||||
$oD3ShGenerator->startDownload('d3usermanager_'.$oShop->getId()."_".$sCronId.".sh");
|
||||
}
|
||||
}
|
490
Application/Controller/Admin/d3_usermanager_jobs.php
Normal file
490
Application/Controller/Admin/d3_usermanager_jobs.php
Normal file
@ -0,0 +1,490 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller\Admin;
|
||||
|
||||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
||||
use D3\ModCfg\Application\Model\d3filesystem;
|
||||
use D3\ModCfg\Application\Model\d3str;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
||||
use D3\ModCfg\Application\Model\Log\d3log;
|
||||
use D3\Usermanager\Application\Model\Constants;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_configurationcheck;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_execute as ManagerExecuteModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_touserassignment as ToItemAssignmentModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanagerlist as ManagerListModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3ActionRequirementInterface;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_templaterendererExceptionInterface;
|
||||
use Doctrine\DBAL\Exception as DoctrineException;
|
||||
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
|
||||
use OxidEsales\Eshop\Application\Model\User as ItemModel;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Field;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Model\BaseModel;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
use OxidEsales\Eshop\Core\Session;
|
||||
use OxidEsales\Eshop\Core\UtilsView;
|
||||
use OxidEsales\Twig\Resolver\TemplateChain\TemplateType\NonTemplateFilenameException;
|
||||
use ReflectionException;
|
||||
|
||||
class d3_usermanager_jobs extends AdminDetailsController
|
||||
{
|
||||
use VariablesTrait;
|
||||
|
||||
private string $_sModId = 'd3usermanager';
|
||||
|
||||
/** @var ManagerListModel */
|
||||
protected $_aJobList;
|
||||
|
||||
protected $_sHelpLinkMLAdd;
|
||||
|
||||
public $_sThisTemplate = '@' . Constants::OXID_MODULE_ID . '/admin/d3_usermanager_jobs';
|
||||
|
||||
/**
|
||||
* constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// prevent the use of the global currency setting instead of the order setting
|
||||
unset($_GET['cur']);
|
||||
|
||||
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
|
||||
throw oxNew(wrongModIdException::class, $this->_sModId);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getItemObject(): ItemModel
|
||||
{
|
||||
/** @var ItemModel $item */
|
||||
$item = d3GetOxidDIC()->get('d3ox.usermanager.'.ItemModel::class);
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function render(): string
|
||||
{
|
||||
$tpl = parent::render();
|
||||
|
||||
$soxId = $this->getEditObjectId();
|
||||
$this->addTplParam("oxid", $soxId);
|
||||
|
||||
if ($soxId != "-1") {
|
||||
$oItem = $this->getItemObject();
|
||||
$oItem->load($soxId);
|
||||
$this->addTplParam("edit", $oItem);
|
||||
}
|
||||
|
||||
/** @var Session $session */
|
||||
$session = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Session::class);
|
||||
|
||||
$sJobFolder = $session->getVariable('d3FolderSelect');
|
||||
$this->addTplParam("jobfolder", $sJobFolder);
|
||||
$this->_aJobList = $this->_d3GetManuallyManagerJobs($sJobFolder);
|
||||
|
||||
return $tpl;
|
||||
}
|
||||
|
||||
public function d3GetSession(): Session
|
||||
{
|
||||
/** @var Session $session */
|
||||
$session = d3GetOxidDIC()->get('d3ox.usermanager.'.Session::class);
|
||||
|
||||
return $session;
|
||||
}
|
||||
|
||||
public function changeFolder(): void
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
|
||||
$this->d3GetSession()->setVariable(
|
||||
'd3FolderSelect',
|
||||
$request->getRequestEscapedParameter('jobfolder')
|
||||
);
|
||||
}
|
||||
|
||||
public function getManagerList(): ManagerListModel
|
||||
{
|
||||
/** @var ManagerListModel $managerList */
|
||||
$managerList = d3GetOxidDIC()->get(ManagerListModel::class);
|
||||
return $managerList;
|
||||
}
|
||||
|
||||
public function d3GetManagerJobs(): ManagerListModel
|
||||
{
|
||||
$oManagerList = $this->getManagerList();
|
||||
$oManagerList->getList();
|
||||
|
||||
return $oManagerList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sFolderId
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
protected function _d3GetManuallyManagerJobs($sFolderId): ManagerListModel
|
||||
{
|
||||
try {
|
||||
$oManagerList = $this->getManagerList();
|
||||
$oList = $oManagerList->d3GetManuallyManagerJobsByFolder($sFolderId);
|
||||
|
||||
/** @var Manager $oManager */
|
||||
foreach ($oList as $sId => $oManager) {
|
||||
$oManagerExecute = $this->getManagerExecute($oManager);
|
||||
if (!$oManager->getValue('sManuallyExecMeetCondition')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (false != $oManagerExecute->userMeetsConditions($this->getEditObjectId())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$oList->offsetUnset($sId);
|
||||
}
|
||||
|
||||
return $oList;
|
||||
} catch (d3ActionRequirementInterface $d3ActionRequirement) {
|
||||
/** @var UtilsView $utilsView */
|
||||
$utilsView = d3GetOxidDIC()->get('d3ox.usermanager.'.UtilsView::class);
|
||||
$utilsView->addErrorToDisplay($d3ActionRequirement);
|
||||
}
|
||||
|
||||
/** @var ManagerListModel $managerList */
|
||||
$managerList = d3GetOxidDIC()->get(ManagerListModel::class);
|
||||
return $managerList;
|
||||
}
|
||||
|
||||
public function d3GetJobList(): array
|
||||
{
|
||||
return $this->_aJobList->getArray();
|
||||
}
|
||||
|
||||
public function getManager(): Manager
|
||||
{
|
||||
/** @var Manager $manager */
|
||||
$manager = d3GetOxidDIC()->get(Manager::class);
|
||||
return $manager;
|
||||
}
|
||||
|
||||
public function getManagerExecute(Manager $oManager): ManagerExecuteModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ManagerExecuteModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var ManagerExecuteModel $managerExecute */
|
||||
$managerExecute = d3GetOxidDIC()->get(ManagerExecuteModel::class);
|
||||
return $managerExecute;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function d3execusermanager(): void
|
||||
{
|
||||
try {
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id . Request::class);
|
||||
|
||||
$oManager = $this->getManager();
|
||||
$oManager->load($request->getRequestEscapedParameter('usermanagerid'));
|
||||
$oManagerExec = $this->getManagerExecute($oManager);
|
||||
|
||||
$this->checkForConfigurationException($oManager);
|
||||
|
||||
if (false == $oManager->getValue('sManuallyExecMeetCondition') ||
|
||||
$oManagerExec->userMeetsConditions($this->getEditObjectId())
|
||||
) {
|
||||
$oManagerExec->exec4user($this->getEditObjectId());
|
||||
$oManagerExec->finishJobExecution();
|
||||
}
|
||||
} catch (d3ActionRequirementInterface | d3usermanager_templaterendererExceptionInterface $oEx) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!defined('OXID_PHP_UNIT')) {
|
||||
$logger = Registry::getLogger();
|
||||
$logger->error($oEx);
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
d3GetOxidDIC()->get('d3.usermanager.log')->alert(
|
||||
self::class,
|
||||
__FUNCTION__,
|
||||
__LINE__,
|
||||
"execution error",
|
||||
$oEx->getMessage()
|
||||
);
|
||||
|
||||
/** @var UtilsView $utilsView */
|
||||
$utilsView = d3GetOxidDIC()->get('d3ox.usermanager.'.UtilsView::class);
|
||||
$utilsView->addErrorToDisplay($oEx);
|
||||
} finally {
|
||||
$oConfig = d3GetOxidDIC()->get('d3ox.usermanager.'.Config::class);
|
||||
$oConfig->setAdminMode(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DoctrineException
|
||||
* @throws ReflectionException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function d3ExecChangedUserManager(): void
|
||||
{
|
||||
try {
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
|
||||
$oManager = $this->getManager();
|
||||
$oManager->load($request->getRequestEscapedParameter('usermanagerid'));
|
||||
$oManager->setEditedValues($request->getRequestEscapedParameter('aContent'));
|
||||
$oManagerExec = $this->getManagerExecute($oManager);
|
||||
|
||||
$this->checkForConfigurationException($oManager);
|
||||
|
||||
if (false == $oManager->getValue('sManuallyExecMeetCondition') ||
|
||||
$oManagerExec->userMeetsConditions($this->getEditObjectId())
|
||||
) {
|
||||
$oManagerExec->exec4user($this->getEditObjectId());
|
||||
$oManagerExec->finishJobExecution();
|
||||
}
|
||||
} catch (d3ActionRequirementInterface | d3usermanager_templaterendererExceptionInterface $e) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (!defined('OXID_PHP_UNIT')) {
|
||||
$logger = Registry::getLogger();
|
||||
$logger->error($e);
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
d3GetOxidDIC()->get('d3.usermanager.log')->alert(
|
||||
self::class,
|
||||
__FUNCTION__,
|
||||
__LINE__,
|
||||
"execution error",
|
||||
$e->getMessage()
|
||||
);
|
||||
|
||||
/** @var UtilsView $utilsView */
|
||||
$utilsView = d3GetOxidDIC()->get('d3ox.usermanager.'.UtilsView::class);
|
||||
$utilsView->addErrorToDisplay($e);
|
||||
} finally {
|
||||
$oConfig = d3GetOxidDIC()->get('d3ox.usermanager.'.Config::class);
|
||||
$oConfig->setAdminMode(true);
|
||||
}
|
||||
}
|
||||
|
||||
public function getUserManagerAssignment(Manager $oManager): ToItemAssignmentModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ToItemAssignmentModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var ToItemAssignmentModel $managerAssignment */
|
||||
$managerAssignment = d3GetOxidDIC()->get(ToItemAssignmentModel::class);
|
||||
return $managerAssignment;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DoctrineException
|
||||
* @throws d3ParameterNotFoundException
|
||||
*/
|
||||
public function d3resetUserManagerAssignment(): void
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
|
||||
$oManager = $this->getManager();
|
||||
$oAssignment = $this->getUserManagerAssignment($oManager);
|
||||
$oAssignment->resetAssignment(
|
||||
$request->getRequestEscapedParameter('usermanagerid'),
|
||||
$this->getEditObjectId()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
*/
|
||||
public function getFolderList()
|
||||
{
|
||||
$oManager = $this->getManager();
|
||||
return $oManager->d3getSelectableFolderList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
public function execChangedContents(): void
|
||||
{
|
||||
try {
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$sItemId = $this->getEditObjectId();
|
||||
$oManager = $this->getManager();
|
||||
$oManager->load($request->getRequestEscapedParameter('usermanagerid'));
|
||||
|
||||
// check configuration exceptions
|
||||
$this->checkForConfigurationException($oManager);
|
||||
|
||||
$contents = $oManager->getEditableContent($sItemId);
|
||||
|
||||
$this->addTplParam('aMailContent', $contents);
|
||||
|
||||
$field = oxNew(Field::class);
|
||||
$field->setValue($contents['html']);
|
||||
$object = oxNew(BaseModel::class);
|
||||
$object->__set(
|
||||
'aContent[mail][html]',
|
||||
$field
|
||||
);
|
||||
$this->addTplParam("htmleditor", $this->generateTextEditor("95%", 180, $object, "aContent[mail][html]", "list.tpl.css"));
|
||||
|
||||
$this->addTplParam('sAction', __FUNCTION__);
|
||||
$this->addTplParam('oManager', $oManager);
|
||||
} catch (d3ActionRequirementInterface | d3usermanager_templaterendererExceptionInterface | NonTemplateFilenameException $oEx) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if (! defined('OXID_PHP_UNIT')) {
|
||||
$logger = Registry::getLogger();
|
||||
$logger->error($oEx->getMessage());
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
$this->getManager()->d3getLog()->log(d3log::ALERT, self::class, __FUNCTION__, __LINE__, "stop execution because configuration error", $oEx->getMessage());
|
||||
|
||||
/** @var UtilsView $utilsView */
|
||||
$utilsView = d3GetOxidDIC()->get('d3ox.usermanager.' . UtilsView::class);
|
||||
$utilsView->addErrorToDisplay($oEx);
|
||||
} finally {
|
||||
$oConfig = d3GetOxidDIC()->get('d3ox.usermanager.'.Config::class);
|
||||
$oConfig->setAdminMode(true);
|
||||
}
|
||||
}
|
||||
|
||||
public function getUserMessages(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
public function getLang(): Language
|
||||
{
|
||||
/** @var Language $language */
|
||||
$language = d3GetOxidDIC()->get('d3ox.usermanager.'.Language::class);
|
||||
|
||||
return $language;
|
||||
}
|
||||
|
||||
public function getHelpURL(): string
|
||||
{
|
||||
$sUrl = $this->d3GetSet()->getHelpURL();
|
||||
/** @var d3str $oD3Str */
|
||||
$oD3Str = d3GetOxidDIC()->get(d3str::class);
|
||||
|
||||
if ($this->_sHelpLinkMLAdd) {
|
||||
$sUrl .= $oD3Str->unprefixedslashit($this->getLang()->translateString($this->_sHelpLinkMLAdd));
|
||||
}
|
||||
|
||||
/** @var d3filesystem $oFS */
|
||||
$oFS = d3GetOxidDIC()->get(d3filesystem::class);
|
||||
$aFileName = $oFS->splitFilename($sUrl);
|
||||
|
||||
// has no extension
|
||||
if (false == $aFileName['ext']) {
|
||||
return $oD3Str->trailingslashit($sUrl);
|
||||
}
|
||||
|
||||
return $sUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* return type can't defined, because of unmockable d3_cfg_mod class, use stdClass in test
|
||||
* @return d3_cfg_mod
|
||||
*/
|
||||
public function d3GetSet()
|
||||
{
|
||||
/** @var d3_cfg_mod $modCfg */
|
||||
$modCfg = d3GetOxidDIC()->get('d3.usermanager.modcfg');
|
||||
|
||||
return $modCfg;
|
||||
}
|
||||
|
||||
public function getLink(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws d3ActionRequirementInterface
|
||||
*/
|
||||
protected function checkForConfigurationException(Manager $oManager): void
|
||||
{
|
||||
d3GetOxidDIC()->set(d3usermanager_configurationcheck::class.'.args.usermanager', $oManager);
|
||||
/** @var d3usermanager_configurationcheck $confCheck */
|
||||
$confCheck = d3GetOxidDIC()->get(d3usermanager_configurationcheck::class);
|
||||
$confCheck->checkThrowingExceptions($oManager->getValue('sManuallyExecMeetCondition') ?
|
||||
d3usermanager_configurationcheck::REQUIREMENTS_AND_ACTIONS :
|
||||
d3usermanager_configurationcheck::ACTIONS_ONLY);
|
||||
}
|
||||
}
|
360
Application/Controller/d3usermanager_response.php
Normal file
360
Application/Controller/d3usermanager_response.php
Normal file
@ -0,0 +1,360 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Usermanager\Application\Controller;
|
||||
|
||||
use Assert\Assert;
|
||||
use Assert\InvalidArgumentException;
|
||||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
||||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
|
||||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||||
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
||||
use D3\ModCfg\Application\Model\Log\d3LogInterface;
|
||||
use D3\Usermanager\Application\Model\d3usermanager as Manager;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_execute as ManagerExecuteModel;
|
||||
use D3\Usermanager\Application\Model\d3usermanager_vars as VariablesTrait;
|
||||
use D3\Usermanager\Application\Model\d3usermanagerlist as ManagerList;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3ActionRequirementAbstract;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_actionException;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_cronUnavailableException as cronUnavailableException;
|
||||
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_requirementException;
|
||||
use DateTime;
|
||||
use Doctrine\DBAL\Exception as DoctrineException;
|
||||
use OxidEsales\Eshop\Core\Base;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||||
use OxidEsales\Eshop\Core\Exception\DatabaseException;
|
||||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Request;
|
||||
use RuntimeException;
|
||||
|
||||
class d3usermanager_response extends Base
|
||||
{
|
||||
use VariablesTrait;
|
||||
private string $_sModId = 'd3usermanager';
|
||||
|
||||
/**
|
||||
* constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->isCLI() or throw new RuntimeException('controller must called via command line interface');
|
||||
|
||||
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
|
||||
throw oxNew(wrongModIdException::class, $this->_sModId);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function isCLI(): bool
|
||||
{
|
||||
return str_starts_with(PHP_SAPI, 'cli');
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DatabaseException
|
||||
* @throws DoctrineException
|
||||
* @throws StandardException
|
||||
* @throws cronUnavailableException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
* @throws d3usermanager_actionException
|
||||
* @throws d3usermanager_requirementException
|
||||
*/
|
||||
public function initCli(): void
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$this->_startExecution();
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DatabaseException
|
||||
* @throws DoctrineException
|
||||
* @throws StandardException
|
||||
* @throws cronUnavailableException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
* @throws d3usermanager_actionException
|
||||
* @throws d3usermanager_requirementException
|
||||
*/
|
||||
protected function _startExecution()
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$iStartTime = microtime(true);
|
||||
|
||||
/** @var d3LogInterface $oLog */
|
||||
$oLog = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'log');
|
||||
$oLog->info(self::class, __FUNCTION__, __LINE__, "start cron", "");
|
||||
|
||||
$this->_checkUnavailableCronjob();
|
||||
$this->_getSet()->setValue($this->_getCronTimestampVarName(), (new DateTime())->format('Y-m-d H:i:s'));
|
||||
$this->_getSet()->saveNoLicenseRefresh();
|
||||
|
||||
$this->_startJobs();
|
||||
|
||||
$iExecTime = microtime(true) - $iStartTime;
|
||||
$oLog->info(
|
||||
self::class,
|
||||
__FUNCTION__,
|
||||
__LINE__,
|
||||
"end cron",
|
||||
'execution time: '.$iExecTime." sec"
|
||||
);
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
}
|
||||
|
||||
public function getManagerList(): ManagerList
|
||||
{
|
||||
/** @var ManagerList $managerList */
|
||||
$managerList = d3GetOxidDIC()->get(ManagerList::class);
|
||||
|
||||
return $managerList;
|
||||
}
|
||||
|
||||
public function getManagerExecute(Manager $oManager): ManagerExecuteModel
|
||||
{
|
||||
d3GetOxidDIC()->set(
|
||||
ManagerExecuteModel::class.'.args.usermanager',
|
||||
$oManager
|
||||
);
|
||||
|
||||
/** @var ManagerExecuteModel $manager_execute */
|
||||
$manager_execute = d3GetOxidDIC()->get(ManagerExecuteModel::class);
|
||||
|
||||
return $manager_execute;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws DatabaseException
|
||||
* @throws StandardException
|
||||
* @throws d3ParameterNotFoundException
|
||||
* @throws d3ActionRequirementAbstract
|
||||
* @throws d3usermanager_actionException
|
||||
* @throws d3usermanager_requirementException
|
||||
* @throws DoctrineException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
*/
|
||||
protected function _startJobs()
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$oManagerList = $this->getManagerList();
|
||||
$oManagerList->setCronJobId($this->_getCronJobIdParameter());
|
||||
$oManagerList->setCustomSorting('oxsort ASC');
|
||||
$oManagerList->getList();
|
||||
|
||||
$oHandleManager = $this->getManager();
|
||||
$oHandleManagerExec = $this->getManagerExecute($oHandleManager);
|
||||
|
||||
// disable admin mode for using active check
|
||||
$blOldAdminMode = self::$_blIsAdmin;
|
||||
self::$_blIsAdmin = false;
|
||||
|
||||
/** @var d3LogInterface $oLog */
|
||||
$oLog = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'log');
|
||||
$oLog->info(
|
||||
self::class,
|
||||
__FUNCTION__,
|
||||
__LINE__,
|
||||
'manager count',
|
||||
$oManagerList->count()
|
||||
);
|
||||
|
||||
/** @var $oManager Manager */
|
||||
foreach ($oManagerList->getList() as $oManager) {
|
||||
$oHandleManager = $this->getManager();
|
||||
$oHandleManager->setLanguage(Registry::getLang()->getTplLanguage());
|
||||
$oHandleManager->load($oManager->getId());
|
||||
$oHandleManagerExec->setManager($oHandleManager);
|
||||
|
||||
self::$_blIsAdmin = $blOldAdminMode;
|
||||
$oHandleManagerExec->startJobExecution();
|
||||
self::$_blIsAdmin = false;
|
||||
}
|
||||
|
||||
self::$_blIsAdmin = $blOldAdminMode;
|
||||
$oHandleManagerExec->finishJobExecution();
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
}
|
||||
|
||||
public function getManager(): Manager
|
||||
{
|
||||
/** @var Manager $manager */
|
||||
$manager = d3GetOxidDIC()->get(Manager::class);
|
||||
|
||||
return $manager;
|
||||
}
|
||||
|
||||
protected function _checkAccessKey(): bool
|
||||
{
|
||||
$sSetCronPassword = $this->_getSet()->getValue('sCronPassword');
|
||||
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
$sGetAccessKey = $request->getRequestEscapedParameter("key");
|
||||
$sRegisteredAccessKey = $sSetCronPassword ?: $this->getManager()->getBaseCronPW();
|
||||
|
||||
return $this->hasValidAccessKey($sRegisteredAccessKey, $sGetAccessKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* return type can't defined, because of unmockable d3_cfg_mod class, use stdClass in test
|
||||
* @return d3_cfg_mod
|
||||
*/
|
||||
protected function _getSet()
|
||||
{
|
||||
/** @var d3_cfg_mod $modcfg */
|
||||
$modcfg = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'modcfg');
|
||||
|
||||
return $modcfg;
|
||||
}
|
||||
|
||||
public function isBrowserCall(): bool
|
||||
{
|
||||
return (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']) ||
|
||||
(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sRegisteredAccessKey
|
||||
* @param $sGetAccessKey
|
||||
*/
|
||||
protected function hasValidAccessKey($sRegisteredAccessKey, $sGetAccessKey): bool
|
||||
{
|
||||
if (false == $this->isBrowserCall()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return $sRegisteredAccessKey == $sGetAccessKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DatabaseErrorException
|
||||
* @throws StandardException
|
||||
* @throws d3ShopCompatibilityAdapterException
|
||||
* @throws d3_cfg_mod_exception
|
||||
* @throws cronUnavailableException
|
||||
*/
|
||||
protected function _checkUnavailableCronjob()
|
||||
{
|
||||
$this->_getSet()->isActive() or throw $this->getCronUnavailableException(
|
||||
$this->getLang()->translateString('D3_USERMANAGER_EXC_CRON_MODULEDISABLED')
|
||||
);
|
||||
|
||||
$this->_checkAccessKey() or throw $this->getCronUnavailableException(
|
||||
$this->getLang()->translateString('D3_USERMANAGER_EXC_CRON_WRONGPASSWORD')
|
||||
);
|
||||
|
||||
$this->_getSet()->getValue('blCronActive') or throw $this->getCronUnavailableException(
|
||||
$this->getLang()->translateString('D3_USERMANAGER_EXC_CRON_UNAVAILABLE')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $sMessage
|
||||
*/
|
||||
public function getCronUnavailableException($sMessage): cronUnavailableException
|
||||
{
|
||||
return oxNew(cronUnavailableException::class, $sMessage);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|int
|
||||
*/
|
||||
protected function _getCronJobIdParameter()
|
||||
{
|
||||
/** @var Request $request */
|
||||
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
|
||||
|
||||
$iCjId = $request->getRequestEscapedParameter('cjid');
|
||||
|
||||
try {
|
||||
Assert::that( $iCjId )->notBlank();
|
||||
} catch (InvalidArgumentException) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $iCjId;
|
||||
}
|
||||
|
||||
protected function _getCronTimestampVarName(): string
|
||||
{
|
||||
return "sCronExecTimestamp".$this->_getCronJobIdParameter();
|
||||
}
|
||||
|
||||
public function getLastExecDate(): string
|
||||
{
|
||||
return (string) $this->_getSet()->getValue($this->_getCronTimestampVarName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws DatabaseConnectionException
|
||||
* @throws DoctrineException
|
||||
*/
|
||||
public function getLastExecDateInfo(): array
|
||||
{
|
||||
$sCronJobId = $this->_getCronJobIdParameter();
|
||||
$taskCount = current(
|
||||
array_filter(
|
||||
$this->getManager()->getAvailableCronjobIds(),
|
||||
fn ($entry): bool => $entry['id'] == $sCronJobId
|
||||
)
|
||||
)['count'];
|
||||
|
||||
return [
|
||||
sprintf(
|
||||
$this->getLang()->translateString('D3_GENERAL_USERMANAGER_TASKCOUNT_CRONID'),
|
||||
$sCronJobId,
|
||||
$taskCount
|
||||
),
|
||||
sprintf(
|
||||
$this->getLang()->translateString('D3_GENERAL_USERMANAGER_LASTEXEC_CRONID'),
|
||||
$sCronJobId,
|
||||
$this->getLastExecDate()
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
public function getLang(): Language
|
||||
{
|
||||
/** @var Language $lang */
|
||||
$lang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
|
||||
|
||||
return $lang;
|
||||
}
|
||||
}
|
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Actions/d3usermanager_actionlist.php
Normal file
2
Application/Model/Actions/d3usermanager_actionlist.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Constants.php
Normal file
2
Application/Model/Constants.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Kundenmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
|
||||
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B36579762CAAQAAAAhAAAABKgAAACABAAAAAAAAAD/lnd1q3MloFGlxOjouWOhvr/HATU1gH4KlevWhjzEcJsMwWOztlUEhMrpOIGH+cZ5tUo8k14cK149cWz8yysD8+nDTWODJmZ+BokP1s4RKwLeo8/WXEk2LPvWsxd1sAFSsKgH636elTZjEUga411VCq2XWTFSj8wrufH6hBKNARMAcq6kPWwlj0gyJ/ACc93LECQ/W7ONiROBLwJkOqn5wqHO6olX2N+yCAAAAJABAABWj3kRLqh2NYmEv9poWcgKnCjaTbZ+1zP0lMAGXxaK2ozPsBoWKSDDDco4N3ULKUEn18yA4xqwovfnzNBQBqcOUMn1Cd0WLibUaitjyQuY1gboUaHoM0csn3jhaiFWbJu0EWGF+QdjtR76trUGeP2JztnbYLg+1BpXz2L0EQ0E/OeDSz073xyalmcv24CafgjL+LLIOyULel2Jl9a7pEXATBbTRbq92+r6QcVTVLe5M0IKntNKbvkkKDmeEK0Cp84ghcl80hS6Tngw5wDD+tVHk1kG97It3fKdIBKB9llcB66/QLI6YXorExG/DoZpVLuj11NeARo/W7a5gX7Hj4rZSFCWKHmwflfMV2AoWiwotpaKlIudBmLYdHqJAfF17cO8IsvbJSZyCT8nhJsyDiVaD3CjqrIX7G+zYWHfluMBTcIoHKjTF1fm77xFux3u/KRyavM05fEHSfSNnl3qJgPgWHRD6cqJQZT7EzqiRKtaWXwkEc7A+h2j0Dz/Opi0pP7038zR/IXMq9ZMwjpU+ZFGUQAAAIABAADwoOhh4HDHEdybtsHi8N2+g1BtRMFU2stNj5hr5cH4DdyqvaBCeRSvdUSRYAvngZe4gExsNK+AT69Ceakc8bKUuvx4+OjvpbU6ggRkyYaQ9FHbTwv3tWirR5+IwI+qM0FqbeOah6TlXNpxggR8pWgn/rgAS3s/AscJ2sqRpKhLU3dX3wwGbNdC3oD+sJxOkaeGWIQWMzDpdqlm4oAvBiQiWDKRaMBQ5Ewdsqt5CBPu0Xq9VeZRwwAxsFmFvRekrNePMImgqgQcI9u0wZq/btdB18OyMm4clI47oJbLe5syZTkYhKr0mwyNi7sc5wKRyRscf9srJPPoLASQJMb82wGhk7Zg5MkbVZmAyVkc5vVFjbVVZyldKAMqyD6bDB3iUSLlzRlO5IQdjo8Z04bRYy0hEMg5bj+hPxyPHZJCiZj36N9HohWfFiovF16U9O8SWWnzkPtXJegLb0naKdl/s3mbVONVCF+/5kORrjeGkEzf8IYTfTN3v6WKTU/SXO75DUNSAAAAgAEAALYm9xqXaDny7QhfaPRI78f+1sY19bKP2UQ52urtcB3HsCOGUO5qrH6JIS8Kr0rq71jHtOWetzGhCszMa/H4NEsBZXpKUTvkl1xjZhfBWSDf3IiLofHZXWVl88KMZFbnObHWNhCApX7cPWCm4VjmyzRwFyKtxg5xmdvw+ImYlC4R/Ze7Y1oCKOiWBN5OqMt5brfoUdcNF+YIwsBvndJIxK+7m7XXnRdmnLLJmA1nmkPrBl8e+wKzwlVP5H+LI4YVOD0q+HPehOze/ZLOutO6CKk/Dc96XWuG05IASvjyy0VZX3wxdxmR5iC0yJfoHFRbUAyVXKMIBjz1GT7PntgRGK1k0V2RolzspTfDBekmxad2fqgDiI4inYGLAiF23iB3OwaC6A+VUf2PXtDkAEf7jBHkfv+6QPtU9Y3P+Veba/YDnBafpfatHb6yoMNGqiWz+vYtzDCKt3DmJ5wvzx8aTLOV9fNGs320ucHt+l2TMSjENK2Dx8eALfq3PokXPeF4PAAAAAA=');
|
2
Application/Model/Context/Html2TextContext.php
Normal file
2
Application/Model/Context/Html2TextContext.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Context/Html2TextContextInterface.php
Normal file
2
Application/Model/Context/Html2TextContextInterface.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Kundenmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
|
||||
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B36579762CAAQAAAAhAAAABKgAAACABAAAAAAAAAD/1ryfsbE1ODND2EK8yfAjQHtgv0JBlDgaACyUam3z6MlQdtaSTS0vKAO2D8KGmLri0qirQbzM5oGb75PhEYBvJ35e4XcJ2FNrUD2+3MjYTNqUzfZyTIVbtkaLCQdH/+S/uNSrEtpWq1YMWHRnJjhuZCuUONdPCuxNDWy+iup1nwTc9fTj2IUtdG58skMdRGpJBXhDiBX8y1pcK717NpQwUga2WSrvCZJCCAAAANgBAAAg1occpIoIkFwNhul4fl3PSYMefTLXiY6moXo8yxUpOoM3bUZ+0/kyZsYCQhVXjdegZIvpGY6IIAx/mZHO2K3JjymX/Z/ZvSwGvqjdmOpBdV7twYQ2r9HUiyGsNd1K55x578E36rYbikw/64JAhTu6eBtQUcWqFnDJkc8Quz87lhweaAG1bl1E5iwpKryt7Zlu0HLxTck56KR7QudS6qLOmpuYOaK5lwlC7K4QUnZgCGnfIQikGcuHtS73dh53Js9IW+csomI2Y1aIZRL/M8m8YAMWHCT9BFU0eb1e8qDFu90/mTCWSEHTyZ69B8SA08pW/T5Yud8IfhTPChs6eZ9PiipLKK9cMjSI0RVW/zVV9TB2vScgsHhPdpWbnYHqXpHCmXWTONNlFscmwbjyez2zolDWXk2ilSu1vCifQsXYeqA33K8gPg6iA8lDmz7zg1dEDISefdeDvc4ASrHsL4uFQfjOTKwPamDUe/jG5aaNmUPpZTsiZ4aqR39Npa8vuMjQq+Mq163b433ZbCifDoTyEurpxLOyFjFRK+9Ux4vRVYUBCXgSFtoskFNVSaysmKttYTOnCYyN9Bn6QT/8+A5XwqK7C0xUnDXWwwjQ8oq7oK4DsNL44lVnUQAAANABAACFpUbw/GXNDTzz39e944Bj/W3Eb1hMXCd2b9Ed2von/38Eqax5OvL+cck3a0eg7NKom3v/pMURQEGdwnql27tzkQnCmZQO7AeCzgZJEUnUKkv/iKD0NGy/Hs+uZc7ghwA6hQ6ckDmE4tYUyOorq7qzm3FJTfOyV8RB5Drezs7y+ZunGtSslRbNIt047rthg76LwHH65hdtEklgKAMv05Oh5b344RwrvPzzTmKEq/A7wBykc90F5Vu9mjOyMTGEcY8N6ESw8RLMs3gRxpbwphwFkgAKhw0JlYLHn9PSaJg0Nbo+M2x1hUfCJ373R8ZiRe85hqVInk+A0WhVf7e5SmkGSlVCUSRDa1vDxEalrsxcavps2R/+Dynlh3ZxvR3/u53ZfNsBeRhYE/N+YlpJn3IY9O+lXgittlw5sQYqDjKgsa0HcZp3z5HDf9q2FYXGJm0ScmGASL94mRHzWRYCyDCJ49DEz7uxKFHu8oebK6xHlxHvTg+L4W1LnWvPlBwEa4SnZoSpAFIC1ZJriiVb8KQDmm+K54cVsG3n97rveXH5LZGAI4WOk5E0MExmuDFlACsZ03Wnvo4IjhxsNEQrPJtvhZzNxxrhFDF+GtfC48V7zlIAAADQAQAAHWZIAdmqV007iMdmT6Alz5IXMN5LnPRfk2FFMqZ9cWOCtI/4wqk5W9qorV6F2SFNeyMUknOhZCGo0Qw1h4s1nOeEP3tNHZT6rZ9joD3WuFi3D3uRfiypzqRAJudP38Cg0XcBiGhzZLThx7bTlMX0LfEoIl/FIDEccMi70qRC2Qf+NmtFP5/Vpm35IzHOyNY2L7aOK/HWAf60qkI1sSuOfdbl5T0yLfcWlcipA4/5wOWQmWcs6qA5B6bMKMmfTmw2ozzjcRNfXiOtuKqWlOIeon6r858/e6jiznZwoqIvi3+zoJ5o1DhLMQdWRmks6vm4EqTH3i6rVqOIDqEXkm/1FfIunhbYGvBZETuCGcSgty6zNlj0zbxWhp7Ub5QRk8sEeYRB4f1Rerbv8l3qMkL0IDWbS3aCGbSDKOAehauVTW12jOwVVUotRb4bPUFmFqFnSRS4Ll+d74rVqoXbMOCc00+PAbKwdBfaF4CW3/2yjO0JyZzaOfshi0Eo+5JOVR1oSnTpSAy3D4NSCcL75BryiPJO8tak8ywUfXSwHjdBfiTX//P1Owqtjq8/+d8eVLKGwzAlG9T+bBxKNzeUzgdZgY9RsScRYefsT1SOcrTgBdoAAAAA');
|
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
@ -0,0 +1,2 @@
|
||||
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Kundenmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
|
||||
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B36579762CAAQAAAAhAAAABKgAAACABAAAAAAAAAD/1ryfsbE1ODND2EK8yfAjQHtgv0JBlDgaACyUam3z6MlQdtaSTS0vKAO2D8KGmLri0qirQbzM5oGb75PhEYBvJ35e4XcJ2FNrUD2+3MjYTNqUzfZyTIVbtkaLCQdH/+S/uNSrEtpWq1YMWHRnJjhuZCuUONdPCuxNDWy+iup1nwTc9fTj2IUtdG58skMdRGpJBXhDiBX8y1pcK717NpQwUga2WSrvCZJCCAAAAJgBAACv0Yax5qQ+GPjY+R1YORk+7XGHktLEYIyUdELRl+844bMjf0Vq9IyMJIRrHKGMFdf9cazQwLQyiHpmJ60Su0weeo5g28zRZGI3CilC+hcHAD9Qn0SknNrGsTrNDdIWCtxlwXcV2iO7GmdvoMQY87HxaKIiFylu7spp6uBKrqVzZWeLx8EFBlcabioGhJLbzldmiwn/Isa4iXA9jhHEOyJLZR8+O2uBOhEzQcRrDKJb5e+PSXs2dY7/vGeYghJytmiJ76j8NwXfm5yD4B1evsA9G0jH1hMe8ZdoYR0S5gR6EwAG4T7hMBlyu2nGXxjiSt6JCnU1Ry+bEjnqwc2GdpnAcxsd8wH9tDBbMlABRY2zn6Eg4JC8JUGJ6Ykjk0ZLw0T4BtrVFxm+lsH7hTI3upJuiips5dw5ucOLWueGtPUQXKSOTD3UG25KSxw+ylAhB2tgy3MpBCuCaOHumDVZelMioTbTJvxv2Meb67Zgzp0599dtKKXUbPelA3r9IeacL55CqmkEBwR3SzZQcK55DWU3/lYJK4cyFOlRAAAAiAEAAIliXee2wqe3kJgx7bZfITuaCJ2lsnjZ8aUA55t9g4TnC2aVEmBc5+maAEjm1aKIOEGQ3p4S8TP9L4X+tAtp7u3Nu8NWCpzogLxD6PXeZ5oJqrbBa+n0xecRfMKF3WbebwtaHEDi6KxEMr35yKc1O8LrE9/JXOYiHxfZBPO5osxtWsyrdKAZ1VJYAPwbv2x/TyfKIorAfF9AHxmg3J/xYRc3EHMkRoa4zrYbL+GIR8DgbkIRxYUSUjB1+KCNzK5/5B+SuexnuZhEhELoN6gEA5myr+DSXVIdvtMwZbQPCUx0lISqkEzwLYM8v3wDsq61qCkhC4e4zCIVsW9bbbusdfdQiMNfpvlYKgf2ioitDF3hIl9T6TDV1g7k+tFitRLE1YnBs+uxVhqyYhcxM2+WuWl8ro7IMUq+MROb+RjEOTcVbR48tqbWO7oHikdHRsB65kJnqYfTb72Dwhh1amPCwnG2/wIDGQJ2iXKAjnBfASvF4Vx5Aqjrkmr8Xyno8fFecb5LcdoHnimaUgAAAIgBAACNEJqP1d0Y4AKr5P3/aBBOzjDTDDYfGAmH8v95HdhYnxdxgvV7pePyJHR42LE69U6lM/rqSTdC0fIEHqGrLCc/foScRrrcGUg8ePtf+bv8kWRG6AqjXPsh8MEDeY+CwrDOOMCsE9bkzd1zgvPj9Am92l5341A1cRrooifj/M/d+TypuDard7aALiXNg058lmhJcr71Uj4z+32w2xfMfkVEiVnNVoHlH7axWC++2RGxAYfzb9xdN+lpwA6IpN6u737Ssfp1GQy1WP28luiPTBR68lbr8pXHifjw1q4G93XY4z0/Z4c//CfxOxZsTpJlFK+soidqoYBzipA+IuU7r0nGcdrvfcZKZvMD2maLILUjWKrPbtmeq5X/jV2kWItBmDZK9TtP9Zl4WXWurPwuEBr3vtBpbNI4+Wy1y/FKaapKSPLJlgJuVfipZe86TKJ8CtNCiJNL6bPk+Cuu6pQE+E+IhuFlc/9OrsYZ/NH6BeBNUx4GybgyiSoYyPsTUIoF3H3hhh2Sj5m4YgAAAAA=');
|
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
@ -0,0 +1,2 @@
|
||||
<?php ?><?php /** This Software is the property of D³ Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Kundenmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
|
||||
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B36579762CAAQAAAAhAAAABKgAAACABAAAAAAAAAD/xkOrMdpgx+e9VTjF1eyE1mG66vSs+PNVjPtKlgihbxPmYf/1ka7KPzjhETWB6GjoYReB6mTpxRyKSgGlri6DWGvgKszLcovey2VnPyYBKUOzpC8aEy0oBjqHuyRN0oGTNdFkiTWbb3okEFtdaSOcywBFQWjw/LWw1N8biihUOOfkdZgVoZKAUK3y5G2uCvMJU18P/4a50c2OOWatfmyqfnO8jpdOiMqCCAAAAJgBAADWAhGZ1DgvO7Bp4ikV3hXSsBTMVQnnSp29aIGs5D7AL2SaNN3QZYx4r3Hk7jE5H1s46SgpR7+q9fU2CRrE2Ok9fExx7pLoAWn4g9qQH6S0/v5RONkIDkWmPVogfQ+DpLb/wDWAfJ9I+4YUEqn6aXGgdLWQitirQnpO4/0o8sN1pdFZuzTq+5cv5fZYqjFxNZXVCtEUiCJ0fVqPPLyFeVtLLEsYivIk92NvhVJE1+8eRQdaitQ53kJjINLwnKUt7g8vkyCIkuWflejsheeZuVXsFEA9D9O1iTXjp5K7IWPn3S8nmUH979oJREw7LgVy2zeP5E7YWiAA0he5CQYi+5wBaj52H3SwJDakMSp+yjnjhGWp43/+a+oLhNNHciI3y44xJUWYj5+FesoLbJOumkzXLEhgofXzn97rVCMrWeOnwOxDtIKY87cFZEGqRyiy3ev8r+6z8f/yRRCzUxVwcCe1RpGzd8m8SNRQxZWylWg8sFNOf4YNFqE5FKyFpHWZDSRzXcNEQusE//cay8zoqFlOpdVyaXzO5qVRAAAAkAEAAAwtZiLXG1jr0owdsbMvmM1Kc+qgYTCdvKV7yGLA2EbLoupnfYoHZGc8GSxQnC71Spjo19RNgo1g6ru9+cSVToTdfyBI0LHFsSL0VmwIQNnJJp1EMyXvNTlk8ZWzEPpXmyrSGBdENCvT8xYIfU4hd3EyuscH+ZLXP4D3Qah+mGWP679OSDLM9bXyyEnAHZaehlpjfYKzKhbi7b8pXyG89Wh0d/jyGGwWuHM0L37bHPj7GcJc+PGEiACo/ijxRri+KIyIIwpib+Raa7ppko+9ckY3xXf6u2DTCNvfJ2DmvHgfi8A7uQwZvVwfUsEQwXbaCeAipxP4yEHiExmdbpat5CVzScDKvq7SUACPSX6V6Duyk0Aw0WTuoUWLuPOFr5vWmRvilm+S5ve+Cr8FHqs4MrpppDseKvmfnxDjtXbzlnx9uIeoBfQn5yOGUpnLXwAgL9lB8B7EScdXofeklhd3LsfO2LTcKwVIxgnK+Id3VNePJq0AzUPPzDP/TXduEBmS90A04Wabp7qJlxu3X3bjTXxSAAAAkAEAAMfNNk3h9ytQGCtt/75hgboOPZYg1V6IKvnIP4ooiZoMtn2x0JxFC7udue0zXxtVhjKePe6isitDhJ2vpWXEMW9fv1UAhFTMc7VA9AuA8dnu1zYveaesrIAehTlebYnDhh6YrOrmSQo+Wn7uYFDD1B7MdpYKVEKbZ8Od7yDLjIV79ic5+NAqtoXf3G3xs+J4WumBeo7YdydGEV8nBLp48/saZxbc7w6/axdutbJrrEEMh5f1VchImh9XOY6Xa8lQnzv4w9/LIbQpZBNrkYH321DvLg7wBlrolO9DRIuQD9Tx6OqkMg6vYkUpJ4PvAnnT0opqE+XqXHsmJ138EdJbpAT9xNtLHt4foFKz8pE1ZiIuzz4Axcp87D3ARXjNf+mp26B8khGTS9hhB7BZBxIpE2WrnjjjMgei7CIATGOQE3owygYN76q//iSyWGUjfAQSdWX0sr/7myQZ9OklFltqytQ0ZNFpzd+IxDhOLKNfjJyT0UjADRXVpSa0MIEwAlw/kT+O0pl0k/EZrA84o2b8AOMAAAAA');
|
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Exceptions/emptyMessageException.php
Normal file
2
Application/Model/Exceptions/emptyMessageException.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/MessageContentGenerator.php
Normal file
2
Application/Model/MessageContentGenerator.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Output/d3usermanager_debugoutput.php
Normal file
2
Application/Model/Output/d3usermanager_debugoutput.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
2
Application/Model/Output/d3usermanager_nulloutput.php
Normal file
2
Application/Model/Output/d3usermanager_nulloutput.php
Normal file
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Bestand-diff onderdrukt omdat een of meer regels te lang zijn
Sommige bestanden werden niet getoond omdat er teveel bestanden zijn veranderd in deze diff Meer weergeven
Laden…
x
Verwijs in nieuw issue
Block a user