Exemplo n.º 1
0
 /**
  * @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);
         }
     }
 }
Exemplo n.º 2
0
 /**
  * @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);
         }
     }
 }
Exemplo n.º 3
0
 /**
  * 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');
 }
Exemplo n.º 4
0
 /**
  * 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 [];
 }
Exemplo n.º 5
0
 /**
  * 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);
             }
         }
     }
 }
Exemplo n.º 6
0
 /**
  * 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();
 }
Exemplo n.º 7
0
 /**
  * @return bool
  */
 public function isAnonymous()
 {
     $userEntity = $this->userHelper->getUser();
     return $userEntity instanceof User && $userEntity->getId() ? false : true;
 }
Exemplo n.º 8
0
 /**
  * Initialize the user parameter for use in locking procedures
  *
  * @param UserHelper $userHelper
  */
 public function setUser(UserHelper $userHelper)
 {
     $this->user = $userHelper->getUser();
 }