diff --git a/libraries/classes/Controllers/Table/TrackingController.php b/libraries/classes/Controllers/Table/TrackingController.php index 96ec279dac..63d92c5a8d 100644 --- a/libraries/classes/Controllers/Table/TrackingController.php +++ b/libraries/classes/Controllers/Table/TrackingController.php @@ -14,6 +14,7 @@ use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Tracking\Tracker; use PhpMyAdmin\Tracking\Tracking; +use PhpMyAdmin\Tracking\TrackingChecker; use PhpMyAdmin\Url; use PhpMyAdmin\Util; use Throwable; @@ -35,6 +36,7 @@ final class TrackingController extends AbstractController ResponseRenderer $response, Template $template, private Tracking $tracking, + private TrackingChecker $trackingChecker, ) { parent::__construct($response, $template); } @@ -64,9 +66,11 @@ final class TrackingController extends AbstractController $toggleActivation = $request->getParsedBodyParam('toggle_activation'); $reportExport = $request->getParsedBodyParam('report_export'); + $trackedTables = $this->trackingChecker->getTrackedTables($GLOBALS['db']); if ( Tracker::isActive() - && Tracker::isTracked($GLOBALS['db'], $GLOBALS['table']) + && isset($trackedTables[$GLOBALS['table']]) + && $trackedTables[$GLOBALS['table']]->active && $toggleActivation !== 'deactivate_now' && $reportExport !== 'sqldumpfile' ) { diff --git a/libraries/services_controllers.php b/libraries/services_controllers.php index a604df0c0a..d241e04f89 100644 --- a/libraries/services_controllers.php +++ b/libraries/services_controllers.php @@ -1615,6 +1615,7 @@ return [ '$response' => '@response', '$template' => '@template', '$tracking' => '@tracking', + '$trackingChecker' => '@tracking_checker', ], ], Table\TriggersController::class => [ diff --git a/test/classes/Controllers/Table/TrackingControllerTest.php b/test/classes/Controllers/Table/TrackingControllerTest.php index cf677b7b6a..595625e010 100644 --- a/test/classes/Controllers/Table/TrackingControllerTest.php +++ b/test/classes/Controllers/Table/TrackingControllerTest.php @@ -45,6 +45,7 @@ class TrackingControllerTest extends AbstractTestCase $response = new ResponseRenderer(); $template = new Template(); + $trackingChecker = $this->createStub(TrackingChecker::class); (new TrackingController( $response, $template, @@ -53,8 +54,9 @@ class TrackingControllerTest extends AbstractTestCase $template, new Relation($this->dbi), $this->dbi, - $this->createStub(TrackingChecker::class), + $trackingChecker, ), + $trackingChecker, ))($this->createStub(ServerRequest::class)); $main = $template->render('table/tracking/main', [