![]() 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/old/vendor/magento/module-new-relic-reporting/Model/Observer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\NewRelicReporting\Model\Observer; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; use Magento\NewRelicReporting\Model\Config; /** * Class ReportConcurrentUsers */ class ReportConcurrentUsers implements ObserverInterface { /** * @var Config */ protected $config; /** * @var \Magento\Customer\Model\Session */ protected $customerSession; /** * @var \Magento\Customer\Api\CustomerRepositoryInterface */ protected $customerRepository; /** * @var \Magento\Store\Model\StoreManagerInterface */ protected $storeManager; /** * @var \Magento\NewRelicReporting\Model\UsersFactory */ protected $usersFactory; /** * @var \Magento\Framework\Json\EncoderInterface */ protected $jsonEncoder; /** * @param Config $config * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\NewRelicReporting\Model\UsersFactory $usersFactory * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder */ public function __construct( Config $config, \Magento\Customer\Model\Session $customerSession, \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\NewRelicReporting\Model\UsersFactory $usersFactory, \Magento\Framework\Json\EncoderInterface $jsonEncoder ) { $this->config = $config; $this->customerSession = $customerSession; $this->customerRepository = $customerRepository; $this->storeManager = $storeManager; $this->usersFactory = $usersFactory; $this->jsonEncoder = $jsonEncoder; } /** * Reports concurrent users to the database reporting_users table * * @param Observer $observer * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function execute(Observer $observer) { if ($this->config->isNewRelicEnabled()) { if ($this->customerSession->isLoggedIn()) { $customer = $this->customerRepository->getById($this->customerSession->getCustomerId()); $jsonData = [ 'id' => $customer->getId(), 'name' => $customer->getFirstname() . ' ' . $customer->getLastname(), 'store' => $this->storeManager->getStore()->getName(), 'website' => $this->storeManager->getWebsite()->getName(), ]; $modelData = [ 'type' => 'user_action', 'action' => $this->jsonEncoder->encode($jsonData), ]; /** @var \Magento\NewRelicReporting\Model\Users $usersModel */ $usersModel = $this->usersFactory->create(); $usersModel->setData($modelData); $usersModel->save(); } } } }