src/Controller/HomeController.php line 67

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\AlertRepository;
  4. use App\Repository\ApiRepository;
  5. use App\Repository\ArticleRepository;
  6. use App\Repository\CountAccessRepository;
  7. use App\Repository\CQrityRepository;
  8. use App\Repository\ExportRepository;
  9. use App\Repository\FeatureRepository;
  10. use App\Repository\InvoiceRepository;
  11. use App\Repository\IscanRepository;
  12. use App\Repository\ReferentielRepository;
  13. use App\Repository\SessionRepository;
  14. use App\Repository\SubscriberRepository;
  15. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\Response;
  18. class HomeController extends AbstractController
  19. {
  20.     private SessionRepository $sessionRepository;
  21.     private SubscriberRepository $subscriberRepository;
  22.     private ArticleRepository $articleRepository;
  23.     private IscanRepository $iscanRepository;
  24.     private ReferentielRepository $referentielRepository;
  25.     private InvoiceRepository $invoiceRepository;
  26.     private ExportRepository $exportRepository;
  27.     private AlertRepository $alertRepository;
  28.     private CountAccessRepository $countAccessRepository;
  29.     private ApiRepository $apiRepository;
  30.     private FeatureRepository $featureRepository;
  31.     private CQrityRepository $cQrityRepository;
  32.     public function __construct (
  33.         SessionRepository     $sessionRepository,
  34.         SubscriberRepository  $subscriberRepository,
  35.         ArticleRepository     $articleRepository,
  36.         IscanRepository       $iscanRepository,
  37.         ReferentielRepository $referentielRepository,
  38.         InvoiceRepository     $invoiceRepository,
  39.         ExportRepository      $exportRepository,
  40.         AlertRepository       $alertRepository,
  41.         CountAccessRepository  $countAccessRepository,
  42.         ApiRepository         $apiRepository,
  43.         FeatureRepository     $featureRepository,
  44.         CQrityRepository      $cQrityRepository
  45.     )
  46.     {
  47.         $this->sessionRepository $sessionRepository;
  48.         $this->subscriberRepository $subscriberRepository;
  49.         $this->iscanRepository $iscanRepository;
  50.         $this->referentielRepository $referentielRepository;
  51.         $this->invoiceRepository $invoiceRepository;
  52.         $this->exportRepository $exportRepository;
  53.         $this->articleRepository $articleRepository;
  54.         $this->alertRepository $alertRepository;
  55.         $this->countAccessRepository $countAccessRepository;
  56.         $this->apiRepository $apiRepository;
  57.         $this->featureRepository $featureRepository;
  58.         $this->cQrityRepository $cQrityRepository;
  59.     }
  60.     public function index(Request $request): Response
  61.     {
  62.         $user $this->sessionRepository->getAllInfos($request->cookies->get("eZSESSID_cfnewsSession"));
  63.         $countAcces $this->countAccessRepository->countAccess($user["abm_id"]);
  64.         $refPrd $this->countAccessRepository->checkPrdRef($user["abm_id"]);
  65.         //dd($user,$countAcces, $refPrd);
  66.         $fact $this->invoiceRepository->getLastInvoice($user['id_abonne']);
  67.         $sub $this->subscriberRepository->getAllSub($user["id_abonne"]);
  68.         $article $this->articleRepository->getArticles($user['mail']);
  69.         $iscan $this->iscanRepository->getIscanKeyWords($user['mail']);
  70.         $refs $this->referentielRepository->getReferentiel($user['id']);
  71.         $iscanArticles =  $this->iscanRepository->getIscanArticles($user['mail']);
  72.         $refGlobal = [];
  73.         $api $this->apiRepository->getUserApi($user['id_abonne']);
  74.         $userAllRequestApi $this->apiRepository->getAllUserRequest($user['id_abonne']);
  75.         $requestTab = [];
  76.         foreach ($userAllRequestApi as $requestApi) {
  77.             $requestTab[] = $requestApi['request'];
  78.         }
  79.         $pregGrepOpe preg_grep('/operation/i'$requestTab);
  80.         $pregGrepSociete preg_grep('/societe/i'$requestTab);
  81.         $pregGrepActeur preg_grep('/acteur/i'$requestTab);
  82.         $pregGrepVehicule preg_grep('/vehicule/i'$requestTab);
  83.         $pregGrepMvt preg_grep('/mouvement/i'$requestTab);
  84.         $pregGrepPeople preg_grep('/people/i'$requestTab);
  85.         $pregGrepTab = [];
  86.         $pregGrepTab[] = [
  87.             'operation' => $pregGrepOpe,
  88.             'societe'   => $pregGrepSociete,
  89.             'acteur'    => $pregGrepActeur,
  90.             'vehicule'  => $pregGrepVehicule,
  91.             'mouvement' => $pregGrepMvt,
  92.             'people'    => $pregGrepPeople
  93.         ];
  94.         foreach ($refs as $ref) {
  95.             $searchId $ref['referentiel_search_id'];
  96.             if (!isset($refGlobal[$searchId])) {
  97.                 $refGlobal[$searchId] = [
  98.                     "id" => $searchId,
  99.                     "title" => $ref['name'],
  100.                     "searches" => []
  101.                 ];
  102.             }
  103.             $refGlobal[$searchId]["searches"][] = [
  104.                 "param_key" => $ref['param_key'],
  105.                 "param_value" => $ref['param_value'],
  106.                 "param_value_name" => $ref['param_value_name']
  107.             ];
  108.         }
  109.         $alertes_texte = [];
  110.         $exportLimit $this->exportRepository->getExportCountLimit($user['id']);
  111.         $exportLimitGestion $this->exportRepository->getExportCountLimitGestionnaire($user['id_abonne']);
  112.         $exportLimitAbo $this->exportRepository->getLimitExportAbonne($user['id_abonne']);
  113.         if(!$user["is_gestionnaire_only"])
  114.         {
  115.             $rubs_user explode('|',$user["alertes"]);
  116.             $i 0;
  117.             if($user["alertes"])
  118.             {
  119.                 foreach ($rubs_user as $alerte) {
  120.                     $alertes_texte[$i] = $this->alertRepository->getRubs($alerte);
  121.                     $i++;
  122.                 }
  123.             }
  124.         }
  125.         $iScanArr = [];
  126.         foreach ($iscanArticles['getIscanArticles'] as $iscanArticle) {
  127.             $iScanArr[] = [
  128.                 'iscanId' => $iscanArticle['id_keyword'],
  129.                 'publication_date' => $iscanArticle['publication_date'],
  130.                 'iscanStatus' => $iscanArticle['status'],
  131.             ];
  132.         }
  133.         $current "index";
  134.         $sub_count count($sub);
  135.         $countLogs $this->featureRepository->getCountFeature();
  136.         return $this->render('home/index.html.twig', [
  137.             'user'               => $user,
  138.             'prd_acces'          => $countAcces,
  139.             'ref_prd'            => $refPrd,
  140.             'alertes_texte'      => $alertes_texte,
  141.             'fact'               => $fact,
  142.             'current'            => $current,
  143.             'sub_count'          => $sub_count,
  144.             'article'            => $article,
  145.             'iscan'              => $iscan,
  146.             'refGlobal'          => $refGlobal,
  147.             'exportLimit'        => $exportLimit,
  148.             'exportLimitGestion' => $exportLimitGestion,
  149.             'exportLimitAbo'     => $exportLimitAbo,
  150.             'api'                => $api,
  151.             'requestTab'         => $requestTab,
  152.             'apiRequestTab'      => $pregGrepTab,
  153.             'countLogs'          => $countLogs
  154.         ]);
  155.     }
  156.     public function getSessionUser(Request $request) {
  157.         $user $this->sessionRepository->getAllInfos($request->cookies->get ("eZSESSID_cfnewsSession"));
  158.         $sessionTab = [];
  159.         if ($user['abm_statut'] == "Révolu") {
  160.             $file "/home/cfikon/tmp/disconnect.txt";
  161.             $sessionFile "sess_" $request->cookies->get ("eZSESSID_cfnewsSession") . ";" $user['mail'] ."\n";
  162.             file_put_contents($file$sessionFileFILE_APPEND LOCK_EX);
  163.             return $sessionFile;
  164.         }
  165.         $currentPath $request->server->get ('REQUEST_URI');
  166.         $isHomepage = ($currentPath === '/');
  167.         if(!$isHomepage) {
  168.             $cqrity $this->cQrityRepository->getCQrityUser($user["mail"]);
  169.             $userMail $user['mail'];
  170.             $count 0;
  171.             $ip $this->getUserIP();
  172.             if(empty($cqrity)) {
  173.                 $count 1;
  174.                 $this->cQrityRepository->addPageCounted($userMail$count$ip$_COOKIE["eZSESSID_cfnewsSession"]);
  175.             } else {
  176.                 if($cqrity[0]['login'] == $userMail) {
  177.                     $count $cqrity[0]['count'] + 1;
  178.                     $this->cQrityRepository->updateCounter($userMail$count);
  179.                 }
  180.             }
  181.         }
  182.         $sessionTab[] = $user["abm_statut"];
  183.         return json_encode($sessionTab);
  184.     }
  185.     private function getUserIP()
  186.     {
  187.         $request = new request();
  188.         if ($request->server->get ('HTTP_CLIENT_IP'))
  189.             $ipaddress $request->server->get ('HTTP_CLIENT_IP');
  190.         else if($request->server->get ('HTTP_X_FORWARDED_FOR'))
  191.             $ipaddress $request->server->get('HTTP_X_FORWARDED_FOR');
  192.         else if($request->server->get('HTTP_X_FORWARDED'))
  193.             $ipaddress $request->server->get('HTTP_X_FORWARDED');
  194.         else if($request->server->get('HTTP_X_CLUSTER_CLIENT_IP'))
  195.             $ipaddress $request->server->get('HTTP_X_CLUSTER_CLIENT_IP');
  196.         else if($request->server->get('HTTP_FORWARDED_FOR'))
  197.             $ipaddress $request->server->get('HTTP_FORWARDED_FOR');
  198.         else if($request->server->get('HTTP_FORWARDED'))
  199.             $ipaddress $request->server->get('HTTP_FORWARDED');
  200.         else if($request->server->get('REMOTE_ADDR'))
  201.             $ipaddress $request->server->get('REMOTE_ADDR');
  202.         else
  203.             $ipaddress 'UNKNOWN';
  204.         return $ipaddress;
  205.     }
  206. }