![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/ReportBundle/EventListener/ |
<?php namespace Mautic\ReportBundle\EventListener; use Mautic\CoreBundle\Security\Permissions\CorePermissions; use Mautic\DashboardBundle\Event\WidgetDetailEvent; use Mautic\DashboardBundle\EventListener\DashboardSubscriber as MainDashboardSubscriber; use Mautic\ReportBundle\Form\Type\ReportWidgetType; use Mautic\ReportBundle\Model\ReportModel; class DashboardSubscriber extends MainDashboardSubscriber { /** * Define the name of the bundle/category of the widget(s). * * @var string */ protected $bundle = 'report'; /** * Define the widget(s). * * @var string */ protected $types = [ 'report' => [ 'formAlias' => ReportWidgetType::class, ], ]; /** * Define permissions to see those widgets. * * @var array */ protected $permissions = [ 'report:reports:viewown', 'report:reports:viewother', ]; public function __construct( protected ReportModel $reportModel, protected CorePermissions $security ) { } /** * Set a widget detail when needed. */ public function onWidgetDetailGenerate(WidgetDetailEvent $event): void { $this->checkPermissions($event); if ('report' == $event->getType()) { $widget = $event->getWidget(); $params = $widget->getParams(); if (!$event->isCached()) { [$reportId, $graph] = explode(':', $params['graph']); $report = $this->reportModel->getEntity($reportId); if ($report && $this->security->hasEntityAccess('report:reports:viewown', 'report:reports:viewother', $report->getCreatedBy())) { $reportData = $this->reportModel->getReportData( $report, null, [ 'ignoreTableData' => true, 'graphName' => $graph, 'dateFrom' => $params['dateFrom'], 'dateTo' => $params['dateTo'], ] ); if (isset($reportData['graphs'][$graph])) { $graphData = $reportData['graphs'][$graph]; if (!isset($graphData['data']['data'])) { $graphData['data']['data'] = $graphData['data']; } $event->setTemplateData( [ 'chartData' => $graphData['data'], 'chartType' => $graphData['type'], 'chartHeight' => $widget->getHeight() - 90, 'reportId' => $report->getId(), 'dateFrom' => $params['dateFrom'], 'dateTo' => $params['dateTo'], ] ); } } } $event->setTemplate('@MauticReport/SubscribedEvents/Dashboard/widget.html.twig'); $event->stopPropagation(); } } }