fix not existing component issue in admin panels login controller

This commit is contained in:
Daniel Seifert 2022-08-15 15:44:51 +02:00
parent 4b47e5ddb6
commit ff606efef3
Signed by: DanielS
GPG Key ID: 8A7C4C6ED1915C6F
2 changed files with 41 additions and 30 deletions

View File

@ -36,7 +36,6 @@ class DebugBarExceptionHandler
*/ */
public function handleUncaughtException(Throwable $exception) public function handleUncaughtException(Throwable $exception)
{ {
//dumpvar(__METHOD__.__LINE__);
try { try {
$debugMode = (bool) \OxidEsales\Eshop\Core\Registry::get(\OxidEsales\Eshop\Core\ConfigFile::class)->getVar('iDebug'); $debugMode = (bool) \OxidEsales\Eshop\Core\Registry::get(\OxidEsales\Eshop\Core\ConfigFile::class)->getVar('iDebug');
$defaultExceptionHandler = new ExceptionHandler($debugMode); $defaultExceptionHandler = new ExceptionHandler($debugMode);
@ -56,11 +55,9 @@ class DebugBarExceptionHandler
} }
global $debugBarSet; global $debugBarSet;
if ($debugBarSet !== 1) { if ($debugBarSet !== 1 && false === isAdmin()) {
/** @var FrontendController $activeView */ /** @var DebugBarComponent $debugBarComponent */
$activeView = Registry::getConfig()->getTopActiveView(); $debugBarComponent = oxNew( DebugBarComponent::class );
/** @var DebugBarComponent|null $debugBarComponent */
$debugBarComponent = $activeView->getComponent(DebugBarComponent::class) ?: oxNew(DebugBarComponent::class);
/** @var ExceptionsCollector $excCollector */ /** @var ExceptionsCollector $excCollector */
$excCollector = $debugBarComponent->getDebugBar()->getCollector('exceptions'); $excCollector = $debugBarComponent->getDebugBar()->getCollector('exceptions');

View File

@ -42,19 +42,21 @@ class ShopControl_DebugBar extends ShopControl_DebugBar_parent
*/ */
public function d3DebugBarSetErrorHandler() public function d3DebugBarSetErrorHandler()
{ {
set_error_handler(function ($severity, $message, $file, $line) { if ($this->d3CanActivateDebugBar()) {
if (!(error_reporting() & $severity)) { set_error_handler( function( $severity, $message, $file, $line ) {
// This error code is not included in error_reporting. if ( ! ( error_reporting() & $severity ) ) {
return; // This error code is not included in error_reporting.
} return;
}
$smartyTemplate = $this->getSmartyTemplateLocationFromError($message); $smartyTemplate = $this->getSmartyTemplateLocationFromError( $message );
if (is_array($smartyTemplate)) { if ( is_array( $smartyTemplate ) ) {
[$file, $line] = $smartyTemplate; [ $file, $line ] = $smartyTemplate;
} }
throw new ErrorException($message, 0, $severity, $file, $line); throw new ErrorException( $message, 0, $severity, $file, $line );
}); } );
}
} }
/** /**
@ -62,10 +64,12 @@ class ShopControl_DebugBar extends ShopControl_DebugBar_parent
*/ */
protected function d3DebugBarSetExceptionHandler(): void protected function d3DebugBarSetExceptionHandler(): void
{ {
set_exception_handler([ if ($this->d3CanActivateDebugBar()) {
new DebugBarExceptionHandler(), set_exception_handler( [
'handleUncaughtException' new DebugBarExceptionHandler(),
]); 'handleUncaughtException'
] );
}
} }
/** /**
@ -89,20 +93,30 @@ class ShopControl_DebugBar extends ShopControl_DebugBar_parent
*/ */
protected function d3AddDebugBarComponent(): void protected function d3AddDebugBarComponent(): void
{ {
$userComponentNames = Registry::getConfig()->getConfigParam('aUserComponentNames'); if ($this->d3CanActivateDebugBar()) {
$d3CmpName = DebugBarComponent::class; $userComponentNames = Registry::getConfig()->getConfigParam( 'aUserComponentNames' );
$blDontUseCache = 1; $d3CmpName = DebugBarComponent::class;
$blDontUseCache = 1;
if (!is_array($userComponentNames)) { if ( ! is_array( $userComponentNames ) ) {
$userComponentNames = []; $userComponentNames = [];
} }
if (!in_array($d3CmpName, array_keys($userComponentNames))) { if ( ! in_array( $d3CmpName, array_keys( $userComponentNames ) ) ) {
$userComponentNames[$d3CmpName] = $blDontUseCache; $userComponentNames[ $d3CmpName ] = $blDontUseCache;
Registry::getConfig()->setConfigParam('aUserComponentNames', $userComponentNames); Registry::getConfig()->setConfigParam( 'aUserComponentNames', $userComponentNames );
}
} }
} }
/**
* @return bool
*/
protected function d3CanActivateDebugBar(): bool
{
return false === isAdmin();
}
public function __destruct() public function __destruct()
{ {
global $debugBarSet; global $debugBarSet;