/** * @param MauticEvents\GlobalSearchEvent $event */ public function onGlobalSearch(MauticEvents\GlobalSearchEvent $event) { $str = $event->getSearchString(); if (empty($str)) { return; } $filter = ['string' => $str, 'force' => []]; $permissions = $this->security->isGranted(['report:reports:viewown', 'report:reports:viewother'], 'RETURN_ARRAY'); if ($permissions['report:reports:viewown'] || $permissions['report:reports:viewother']) { if (!$permissions['report:reports:viewother']) { $filter['force'][] = ['column' => 'IDENTITY(r.createdBy)', 'expr' => 'eq', 'value' => $this->userHelper->getUser()->getId()]; } $items = $this->reportModel->getEntities(['limit' => 5, 'filter' => $filter]); $count = count($items); if ($count > 0) { $results = []; foreach ($items as $item) { $results[] = $this->templating->renderResponse('MauticReportBundle:SubscribedEvents\\Search:global.html.php', ['item' => $item])->getContent(); } if ($count > 5) { $results[] = $this->templating->renderResponse('MauticReportBundle:SubscribedEvents\\Search:global.html.php', ['showMore' => true, 'searchString' => $str, 'remaining' => $count - 5])->getContent(); } $results['count'] = $count; $event->addResults('mautic.report.reports', $results); } } }
/** * @param MauticEvents\GlobalSearchEvent $event */ public function onGlobalSearch(MauticEvents\GlobalSearchEvent $event) { $str = $event->getSearchString(); if (empty($str)) { return; } $security = $this->security; $filter = ['string' => $str, 'force' => '']; $permissions = $security->isGranted(['form:forms:viewown', 'form:forms:viewother'], 'RETURN_ARRAY'); if ($permissions['form:forms:viewown'] || $permissions['form:forms:viewother']) { //only show own forms if the user does not have permission to view others if (!$permissions['form:forms:viewother']) { $filter['force'] = [['column' => 'f.createdBy', 'expr' => 'eq', 'value' => $this->userHelper->getUser()->getId()]]; } $forms = $this->formModel->getEntities(['limit' => 5, 'filter' => $filter]); if (count($forms) > 0) { $formResults = []; foreach ($forms as $form) { $formResults[] = $this->templating->renderResponse('MauticFormBundle:SubscribedEvents\\Search:global.html.php', ['form' => $form[0]])->getContent(); } if (count($forms) > 5) { $formResults[] = $this->templating->renderResponse('MauticFormBundle:SubscribedEvents\\Search:global.html.php', ['showMore' => true, 'searchString' => $str, 'remaining' => count($forms) - 5])->getContent(); } $formResults['count'] = count($forms); $event->addResults('mautic.form.forms', $formResults); } } }
/** * PathsHelper constructor. * * @param CoreParametersHelper * @param UserHelper $userHelper */ public function __construct(UserHelper $userHelper, CoreParametersHelper $coreParametersHelper) { $this->user = $userHelper->getUser(); $this->paths = $coreParametersHelper->getParameter('paths'); $this->theme = $coreParametersHelper->getParameter('theme'); $this->imagePath = $coreParametersHelper->getParameter('image_path'); $this->dashboardImportDir = $coreParametersHelper->getParameter('dashboard_import_dir'); $this->dashboardImportUserDir = $coreParametersHelper->getParameter('dashboard_import_user_dir'); $this->kernelCacheDir = $coreParametersHelper->getParameter('kernel.cache_dir'); $this->kernelLogsDir = $coreParametersHelper->getParameter('kernel.logs_dir'); }
/** * Return a list of entities. * * @param array $args [start, limit, filter, orderBy, orderByDir] * * @return \Doctrine\ORM\Tools\Pagination\Paginator|array */ public function getEntities(array $args = []) { //set the translator $repo = $this->getRepository(); if ($repo instanceof CommonRepository) { $repo->setTranslator($this->translator); $repo->setCurrentUser($this->userHelper->getUser()); return $repo->getEntities($args); } return []; }
/** * Populates namespace, bundle, controller, and action into request to be used throughout application. * * @param FilterControllerEvent $event */ public function onKernelController(FilterControllerEvent $event) { $controller = $event->getController(); if (!is_array($controller)) { return; } //only affect Mautic controllers if ($controller[0] instanceof MauticController) { $request = $event->getRequest(); //also set the request for easy access throughout controllers $controller[0]->setRequest($request); // set the factory for easy use access throughout the controllers // @deprecated To be removed in 3.0 $controller[0]->setFactory($this->factory); // set the user as well $controller[0]->setUser($this->userHelper->getUser()); // and the core parameters helper $controller[0]->setCoreParametersHelper($this->coreParametersHelper); // and the dispatcher $controller[0]->setDispatcher($this->dispatcher); // and the translator $controller[0]->setTranslator($this->translator); //run any initialize functions $controller[0]->initialize($event); //update the user's activity marker if (!$controller[0] instanceof InstallController && !defined('MAUTIC_ACTIVITY_CHECKED') && !defined('MAUTIC_INSTALLER')) { //prevent multiple updates $user = $this->userHelper->getUser(); //slight delay to prevent too many updates //note that doctrine will return in current timezone so we do not have to worry about that $delay = new \DateTime(); $delay->setTimestamp(strtotime('2 minutes ago')); if ($user instanceof User && $user->getLastActive() < $delay && $user->getId()) { $this->userModel->getRepository()->setLastActive($user); } $session = $request->getSession(); if ($session) { $delay = new \DateTime(); $delay->setTimestamp(strtotime('15 minutes ago')); $lastOnlineStatusCleanup = $session->get('mautic.online.status.cleanup', $delay); if ($lastOnlineStatusCleanup <= $delay) { $this->userModel->getRepository()->updateOnlineStatuses(); $session->set('mautic.online.status.cleanup', new \DateTime()); } define('MAUTIC_ACTIVITY_CHECKED', 1); } } } }
/** * LogoutHandler constructor. * * @param UserModel $userModel * @param EventDispatcherInterface $dispatcher * @param UserHelper $userHelper */ public function __construct(UserModel $userModel, EventDispatcherInterface $dispatcher, UserHelper $userHelper) { $this->userModel = $userModel; $this->dispatcher = $dispatcher; $this->user = $userHelper->getUser(); }
/** * @return bool */ public function isAnonymous() { $userEntity = $this->userHelper->getUser(); return $userEntity instanceof User && $userEntity->getId() ? false : true; }
/** * Initialize the user parameter for use in locking procedures * * @param UserHelper $userHelper */ public function setUser(UserHelper $userHelper) { $this->user = $userHelper->getUser(); }