12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- declare(strict_types=1);
- namespace PhpMyAdmin\Controllers\Server\Status\Monitor;
- use PhpMyAdmin\Controllers\Server\Status\AbstractController;
- use PhpMyAdmin\DatabaseInterface;
- use PhpMyAdmin\ResponseRenderer;
- use PhpMyAdmin\Server\Status\Data;
- use PhpMyAdmin\Server\Status\Monitor;
- use PhpMyAdmin\Template;
- use PhpMyAdmin\Url;
- final class GeneralLogController extends AbstractController
- {
- /** @var Monitor */
- private $monitor;
- /** @var DatabaseInterface */
- private $dbi;
- public function __construct(
- ResponseRenderer $response,
- Template $template,
- Data $data,
- Monitor $monitor,
- DatabaseInterface $dbi
- ) {
- parent::__construct($response, $template, $data);
- $this->monitor = $monitor;
- $this->dbi = $dbi;
- }
- public function __invoke(): void
- {
- global $errorUrl;
- $params = [
- 'time_start' => $_POST['time_start'] ?? null,
- 'time_end' => $_POST['time_end'] ?? null,
- 'limitTypes' => $_POST['limitTypes'] ?? null,
- 'removeVariables' => $_POST['removeVariables'] ?? null,
- ];
- $errorUrl = Url::getFromRoute('/');
- if ($this->dbi->isSuperUser()) {
- $this->dbi->selectDb('mysql');
- }
- if (! $this->response->isAjax()) {
- return;
- }
- $data = $this->monitor->getJsonForLogDataTypeGeneral(
- (int) $params['time_start'],
- (int) $params['time_end'],
- (bool) $params['limitTypes'],
- (bool) $params['removeVariables']
- );
- if ($data === null) {
- $this->response->setRequestStatus(false);
- return;
- }
- $this->response->addJSON(['message' => $data]);
- }
- }
|