From 0d8ed00cc20145b388b9a8539fad8aaee97d1d29 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Fri, 3 Jan 2025 02:13:25 +0000 Subject: [PATCH] Convert SendErrorReports to use $config Signed-off-by: Kamil Tekiela --- phpstan-baseline.neon | 6 ------ psalm-baseline.xml | 3 --- src/Controllers/ErrorReportController.php | 4 ++-- src/Error/ErrorHandler.php | 16 ++++++++-------- src/Error/ErrorReport.php | 4 ++-- src/Header.php | 2 +- tests/unit/Error/ErrorHandlerTest.php | 4 ++-- tests/unit/HeaderTest.php | 2 +- tests/unit/InsertEditTest.php | 2 +- tests/unit/SqlTest.php | 2 +- 10 files changed, 18 insertions(+), 27 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 905e5962c3..fab0f60e8a 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -18981,12 +18981,6 @@ parameters: count: 4 path: tests/unit/Error/ErrorHandlerTest.php - - - message: '#^Property PhpMyAdmin\\Config\:\:\$settings \(array\{PmaAbsoluteUri\: string, AuthLog\: string, AuthLogSuccess\: bool, PmaNoRelation_DisableWarning\: bool, SuhosinDisableWarning\: bool, LoginCookieValidityDisableWarning\: bool, ReservedWordDisableWarning\: bool, TranslationWarningThreshold\: int, \.\.\.\}\) does not accept array\{PmaAbsoluteUri\: string, AuthLog\: string, AuthLogSuccess\: bool, PmaNoRelation_DisableWarning\: bool, SuhosinDisableWarning\: bool, LoginCookieValidityDisableWarning\: bool, ReservedWordDisableWarning\: bool, TranslationWarningThreshold\: int, \.\.\.\}\.$#' - identifier: assign.propertyType - count: 1 - path: tests/unit/Error/ErrorHandlerTest.php - - message: ''' #^Call to deprecated method getInstance\(\) of class PhpMyAdmin\\Config\: diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 5c1bc41821..d7442bef46 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -11412,9 +11412,6 @@ - - settings]]> - diff --git a/src/Controllers/ErrorReportController.php b/src/Controllers/ErrorReportController.php index c8ed9892eb..2951f89ec8 100644 --- a/src/Controllers/ErrorReportController.php +++ b/src/Controllers/ErrorReportController.php @@ -87,7 +87,7 @@ final class ErrorReportController implements InvocableController /* Message to show to the user */ if ($success) { - if ($automatic === 'true' || $config->settings['SendErrorReports'] === 'always') { + if ($automatic === 'true' || $config->config->SendErrorReports === 'always') { $msg = __( 'An error has been detected and an error report has been ' . 'automatically submitted based on your settings.', @@ -134,7 +134,7 @@ final class ErrorReportController implements InvocableController } } } elseif ($request->hasBodyParam('get_settings')) { - $this->response->addJSON('report_setting', $config->settings['SendErrorReports']); + $this->response->addJSON('report_setting', $config->config->SendErrorReports); } elseif ($exceptionType === 'js') { $this->response->addJSON('report_modal', $this->errorReport->getEmptyModal()); $this->response->addHTML($this->errorReport->getForm()); diff --git a/src/Error/ErrorHandler.php b/src/Error/ErrorHandler.php index d4a90369d3..82bcb31329 100644 --- a/src/Error/ErrorHandler.php +++ b/src/Error/ErrorHandler.php @@ -370,7 +370,7 @@ class ErrorHandler $retval = ''; // display errors if SendErrorReports is set to 'ask'. $config = Config::getInstance(); - if ($config->settings['SendErrorReports'] !== 'never') { + if ($config->config->SendErrorReports !== 'never') { foreach ($this->getErrors() as $error) { if ($error->isDisplayed()) { continue; @@ -382,11 +382,11 @@ class ErrorHandler $retval .= $this->getDispUserErrors(); } - if ($config->settings['SendErrorReports'] !== 'never' && $this->countActualErrors() !== 0) { + if ($config->config->SendErrorReports !== 'never' && $this->countActualErrors() !== 0) { // add report button. $retval .= '
settings['SendErrorReports'] === 'always') { + if ($config->config->SendErrorReports === 'always') { // in case of 'always', generate 'invisible' form. $retval .= ' class="hide"'; } @@ -406,7 +406,7 @@ class ErrorHandler . __('Automatically send report next time') . ''; - if ($config->settings['SendErrorReports'] === 'ask') { + if ($config->config->SendErrorReports === 'ask') { // add ignore buttons $retval .= 'settings['SendErrorReports'] === 'ask') { + } elseif ($config->config->SendErrorReports === 'ask') { //ask user whether to submit errors or not. if (! $response->isAjax()) { // js code to show appropriate msgs, event binding & focusing. diff --git a/src/Error/ErrorReport.php b/src/Error/ErrorReport.php index de117824c2..c55254bce4 100644 --- a/src/Error/ErrorReport.php +++ b/src/Error/ErrorReport.php @@ -265,7 +265,7 @@ class ErrorReport 'report_data' => $reportData, 'hidden_inputs' => Url::getHiddenInputs(), 'hidden_fields' => null, - 'allowed_to_send_error_reports' => $this->config->get('SendErrorReports') !== 'never', + 'allowed_to_send_error_reports' => $this->config->config->SendErrorReports !== 'never', ]; if ($reportData !== []) { @@ -278,7 +278,7 @@ class ErrorReport public function getEmptyModal(): string { return $this->template->render('error/report_modal', [ - 'allowed_to_send_error_reports' => $this->config->get('SendErrorReports') !== 'never', + 'allowed_to_send_error_reports' => $this->config->config->SendErrorReports !== 'never', ]); } } diff --git a/src/Header.php b/src/Header.php index cadafb9b14..1791d4adcd 100644 --- a/src/Header.php +++ b/src/Header.php @@ -228,7 +228,7 @@ class Header } } - if ($this->config->settings['SendErrorReports'] !== 'never') { + if ($this->config->config->SendErrorReports !== 'never') { $this->scripts->addFile('vendor/tracekit.js'); $this->scripts->addFile('error_report.js'); } diff --git a/tests/unit/Error/ErrorHandlerTest.php b/tests/unit/Error/ErrorHandlerTest.php index 6e98439853..eca3f8230f 100644 --- a/tests/unit/Error/ErrorHandlerTest.php +++ b/tests/unit/Error/ErrorHandlerTest.php @@ -52,7 +52,7 @@ class ErrorHandlerTest extends AbstractTestCase $_SESSION['errors'] = []; $config = Config::getInstance(); $config->set('environment', 'production'); - $config->settings['SendErrorReports'] = 'always'; + $config->set('SendErrorReports', 'always'); } /** @@ -97,7 +97,7 @@ class ErrorHandlerTest extends AbstractTestCase ): void { $config = new Config(); $config->set('environment', 'production'); - $config->settings['SendErrorReports'] = $reportErrorConfig; + $config->set('SendErrorReports', $reportErrorConfig); Config::$instance = $config; $error = new Error($errorNumber, $errorMessage, $errorFile, $errorLine); diff --git a/tests/unit/HeaderTest.php b/tests/unit/HeaderTest.php index 488f5a079f..ce9e018200 100644 --- a/tests/unit/HeaderTest.php +++ b/tests/unit/HeaderTest.php @@ -71,7 +71,7 @@ class HeaderTest extends AbstractTestCase Current::$message = null; $config = Config::getInstance(); $config->settings['CodemirrorEnable'] = false; - $config->settings['SendErrorReports'] = 'never'; + $config->set('SendErrorReports', 'never'); $config->settings['enable_drag_drop_import'] = false; $config->settings['DisableShortcutKeys'] = true; $dbi = $this->createDatabaseInterface(); diff --git a/tests/unit/InsertEditTest.php b/tests/unit/InsertEditTest.php index 70155ec670..9961b83bb7 100644 --- a/tests/unit/InsertEditTest.php +++ b/tests/unit/InsertEditTest.php @@ -85,7 +85,7 @@ class InsertEditTest extends AbstractTestCase $config->settings['CharTextareaRows'] = 5; $config->settings['CharTextareaCols'] = 6; $config->settings['AllowThirdPartyFraming'] = false; - $config->settings['SendErrorReports'] = 'ask'; + $config->set('SendErrorReports', 'ask'); $config->settings['DefaultTabDatabase'] = '/database/structure'; $config->settings['ShowDatabasesNavigationAsTree'] = true; $config->settings['DefaultTabTable'] = '/sql'; diff --git a/tests/unit/SqlTest.php b/tests/unit/SqlTest.php index cced04268c..63cd2b8a3e 100644 --- a/tests/unit/SqlTest.php +++ b/tests/unit/SqlTest.php @@ -49,7 +49,7 @@ class SqlTest extends AbstractTestCase Current::$table = 'table'; $config = Config::getInstance(); $config->settings['AllowThirdPartyFraming'] = false; - $config->settings['SendErrorReports'] = 'ask'; + $config->set('SendErrorReports', 'ask'); $config->settings['ServerDefault'] = 1; $config->settings['DefaultTabDatabase'] = '/database/structure'; $config->settings['DefaultTabTable'] = '/sql';