src/ApplicationBundle/Listener/SessionListener.php line 45

Open in your IDE?
  1. <?php
  2. namespace ApplicationBundle\Listener;
  3. use ApplicationBundle\Interfaces\LoginInterface;
  4. use ApplicationBundle\Interfaces\SessionCheckInterface;
  5. use ApplicationBundle\Interfaces\SystemInterface;
  6. use ApplicationBundle\Modules\Authentication\Constants\UserConstants;
  7. use ApplicationBundle\Modules\System\MiscActions;
  8. use ApplicationBundle\Modules\System\System;
  9. use Symfony\Component\HttpFoundation\Cookie;
  10. use Symfony\Component\HttpFoundation\RedirectResponse;
  11. use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  12. use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
  13. class SessionListener
  14. {
  15.     public $secretKey "";
  16.     private $em;
  17.     private $em_goc;
  18.     private $dm;
  19.     private $router;
  20.     private $session;
  21.     private $resolver;
  22.     private $applicationConnector;
  23.     private $kernelRootDir;
  24.     private $container;
  25.     protected $urlEncryptor;
  26.     public function __construct($kernelRootDir$container$resolver$applicationConnector$router$session$db_credentials$db_credentials_company_group$secret,\Nzo\UrlEncryptorBundle\UrlEncryptor\UrlEncryptor $urlEncryptor)
  27.     {
  28.         $this->secretKey $secret;
  29.         $this->em $db_credentials;
  30.         $this->em_goc $db_credentials_company_group;
  31. //        $this->dm=$odm_credentials;
  32.         $this->router $router;
  33.         $this->resolver $resolver;
  34.         $this->container $container;
  35.         $this->applicationConnector $applicationConnector;
  36.         $this->kernelRootDir $kernelRootDir;
  37.         $this->session $session;
  38.         $this->urlEncryptor $urlEncryptor;
  39.     }
  40.     public function onKernelController(FilterControllerEvent $event)
  41.     {
  42.         $controller $event->getController();
  43.         /*
  44.          * $controller passed can be either a class or a Closure.
  45.          * This is not usual in Symfony but it may happen.
  46.          * If it is a class, it comes in array format
  47.          */
  48.         if (!is_array($controller)) {
  49.             return;
  50.         }
  51.         $hbeeErrorCode UserConstants::ERROR_USER_EXISTS_ALREADY;
  52.         $request $event->getRequest();
  53.         $devAdminMode '_UNCHANGED_';
  54.         if ($request->request->has('devAdminOn') || $request->query->has('devAdminOn')) {
  55.             $devAdminMode $request->request->has('devAdminOn') ? $request->request->get('devAdminOn') : $request->query->get('devAdminOn');
  56.         }
  57. //        if ($request->request->has('devAdminOff')|| $request->query->has('devAdminOff')) {
  58. //            $devAdminMode=0;
  59. //
  60. //        }
  61.         $permissionOverride 0;
  62.         if ($request->query->has('OVP'))
  63.             $permissionOverride 1;
  64.         $authTokenInHeader $event->getRequest()->headers->get('auth-token');
  65.         if ($authTokenInHeader) {
  66.             $request->request->set('hbeeSessionToken'$authTokenInHeader);
  67.         }
  68.         if ($request->query->has('tvp')) {
  69.             $tvp json_decode($this->urlEncryptor->decrypt($request->query->get('tvp')),true);
  70.             $request->request->set('TVP'json_encode($tvp));
  71.             if(isset($tvp['timeout']))
  72.             {
  73.                 $currentDateTime = new \DateTime();
  74.                 $currTs=$currentDateTime->format('U');
  75.                 if($tvp['timeout']>$currTs || $tvp['timeout']==0) {
  76.                     if (isset($tvp['token']))
  77.                         $request->request->set('hbeeSessionToken'$tvp['token']);
  78.                 }
  79.                 else
  80.                 {
  81.                     $url $this->router->generate('permission_denied_page');
  82.                     $event->setController(function () use ($url) {
  83.                         return new RedirectResponse($url);
  84.                     });
  85.                 }
  86.             }
  87.         }
  88.         //check if mobile
  89.         $session $this->session;
  90.         if (empty($session->get('appValiditySeconds'))) {  //how many sevonds is valid
  91.             $session->set('appValiditySeconds''_UNSET_');
  92.         }
  93.         if (empty($session->get('devAdminMode'))) {  //how many sevonds is valid
  94.             $session->set('devAdminMode'0);
  95.         }
  96.         if ($devAdminMode != '_UNCHANGED_')
  97.             $session->set('devAdminMode'$devAdminMode);
  98.         $to_set_session_data = [];
  99.         $CurrentRoute $event->getRequest()->attributes->get('_route');
  100.         if ($CurrentRoute == 'switch_app' || $CurrentRoute == 'app_switch_app_api') {
  101.             if ($request->query->has('hbeeSessionToken')) {
  102.                 $em_goc $this->em_goc;
  103.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->query->get('hbeeSessionToken'))['sessionData'];
  104.                 if ($to_set_session_data != null) {
  105.                     foreach ($to_set_session_data as $k => $d) {
  106.                         //check if mobile
  107.                         $session->set($k$d);
  108.                     }
  109.                 } else {
  110.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  111.                 }
  112.             } else {
  113.                 $url $this->router->generate('user_login');
  114.                 if ($CurrentRoute == 'app_switch_app_api')
  115.                     $url .= ("?csToken=" $request->query->get('csToken''') . "&spd=" $request->query->get('spd''') . "&remoteVerify=1");
  116.                 else
  117.                     $url .= ("?csToken=" $request->query->get('csToken''') . "&spd=" $request->query->get('spd''') . "&remoteVerify=" $request->query->get('remoteVerify'0));
  118.                 $session->clear();
  119.                 $session->set('CLEARLOGIN'1);
  120.                 $event->setController(function () use ($url) {
  121.                     return new RedirectResponse($url);
  122.                 });
  123.             }
  124.         }
  125. //        if ($CurrentRoute == 'select_second_layer_api' ) {
  126. //
  127. //            if ($request->query->has('hbeeSessionToken')) {
  128. //
  129. //                $em_goc = $this->em_goc;
  130. //
  131. //
  132. //                $to_set_session_data = MiscActions::GetSessionDataFromToken($em_goc, $request->query->get('hbeeSessionToken'))['sessionData'];
  133. //                if ($to_set_session_data != null) {
  134. //                    foreach ($to_set_session_data as $k => $d) {
  135. //
  136. //                        //check if mobile
  137. //                        $session->set($k, $d);
  138. //                    }
  139. //
  140. //                } else {
  141. //                    $hbeeErrorCode = UserConstants::ERROR_TOKEN_EXPIRED;
  142. //                }
  143. //
  144. //            } else {
  145. //
  146. //
  147. //            }
  148. //        }
  149.         if (!$session->has(UserConstants::USER_ID)) {
  150.             if ($request->request->has('token')) {
  151.                 $em_goc $this->em_goc;
  152.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->request->get('token'))['sessionData'];
  153.                 if ($to_set_session_data != null) {
  154.                     foreach ($to_set_session_data as $k => $d) {
  155.                         //check if mobile
  156.                         $session->set($k$d);
  157.                     }
  158.                 } else {
  159.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  160.                 }
  161.             } else if ($request->request->has('hbeeSessionToken')) {
  162.                 $em_goc $this->em_goc;
  163.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->request->get('hbeeSessionToken'))['sessionData'];
  164.                 if ($to_set_session_data != null) {
  165.                     foreach ($to_set_session_data as $k => $d) {
  166.                         //check if mobile
  167.                         $session->set($k$d);
  168.                     }
  169.                 } else {
  170.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  171.                 }
  172.             } else if ($request->query->has('hbeeSessionToken')) {
  173.                 $em_goc $this->em_goc;
  174.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->query->get('hbeeSessionToken'))['sessionData'];
  175.                 if ($to_set_session_data != null) {
  176.                     foreach ($to_set_session_data as $k => $d) {
  177.                         //check if mobile
  178.                         $session->set($k$d);
  179.                     }
  180.                 } else {
  181.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  182.                 }
  183.             } else if ($request->request->has('sessionData')) {
  184.                 $to_set_session_data $request->request->get('sessionData');
  185.                 foreach ($to_set_session_data as $k => $d) {
  186.                     //check if mobile
  187.                     $session->set($k$d);
  188.                 }
  189.             } else if ($request->request->has('sessionDataString')) {
  190.                 $to_set_session_data json_decode($request->request->get('sessionDataString'), true);
  191.                 if ($to_set_session_data != null) {
  192.                     foreach ($to_set_session_data as $k => $d) {
  193.                         //check if mobile
  194.                         $session->set($k$d);
  195.                     }
  196.                 }
  197.             }
  198.             if ($request->query->has('iFrameData')) {
  199.                 $session->set(UserConstants::USER_ID$request->query->get('uId'));
  200.                 $session->set(UserConstants::USER_NAME$request->query->get('uName'));
  201.                 $session->set(UserConstants::USER_LOGIN_ID$request->query->get('loginId'));
  202.                 $session->set(UserConstants::APPLICATION_SECRET$request->query->get('sKey'));
  203.                 $session->set(UserConstants::USER_GOC_ID$request->query->get('gocId'));
  204.                 $session->set(UserConstants::USER_DB_NAME$request->query->get('gocDb'));
  205.                 $session->set(UserConstants::USER_DB_USER$request->query->get('gocUsr'));
  206.                 $session->set(UserConstants::USER_DB_PASS$request->query->get('gocPass'));
  207.                 $session->set(UserConstants::USER_DB_HOST$request->query->get('gocDh'));
  208.                 $session->set(UserConstants::USER_TYPE$request->query->get('uType'));
  209.                 $session->set(UserConstants::USER_CURRENT_POSITION$request->query->get('currPos'));
  210.                 $session->set(UserConstants::USER_COMPANY_ID$request->query->get('cmpId'));
  211.                 $session->set(UserConstants::USER_APP_ID$request->query->get('uAId'));
  212.                 $session->set(UserConstants::USER_IMAGE"");
  213.                 $session->set('productNameDisplayType'0);
  214.                 $cmpImg $request->query->get('cmpIm');
  215.                 $cmpName $request->query->get('cmpN');
  216.                 $app_cid $request->query->get('uAId') . "_" $request->query->get('cmpId');
  217.                 $cid $request->query->get('cmpId');
  218.                 $session->set('userCompanyDarkVibrantList'json_encode(array(
  219.                     $cid => ""
  220.                 )));
  221.                 $cmpNameListStr json_encode(array(
  222.                     $cid => $cmpName
  223.                 ));
  224.                 $cmpImageListStr json_encode(array(
  225.                     $cid => $cmpImg
  226.                 ));
  227.                 $session->set(UserConstants::USER_COMPANY_NAME_LIST$cmpNameListStr);
  228.                 $session->set(UserConstants::USER_COMPANY_IMAGE_LIST$cmpImageListStr);
  229.                 $session->set(UserConstants::USER_PROHIBIT_LIST"[]");
  230.                 $session->set(UserConstants::ALL_MODULE_ACCESS_FLAG1);
  231.             }
  232.         }
  233. //        $path=$this->kernelRootDir. '/gifnoc/invdata.json';
  234. //        file_put_contents($path, json_encode(array(
  235. //            'sessionDataString'=>$request->request->get('sessionDataString'),
  236. //            'productCode'=>$request->request->get('productCode'),
  237. //            'userId'=>$session->get(UserConstants::USER_ID),
  238. //            'sessionData'=>json_decode($request->request->get('sessionDataString'),true),
  239. //            'to_set_session_data'=>$to_set_session_data,
  240. ////            'invData'=>$data_searched,
  241. //
  242. //        )));//overwrite
  243.         if (!$session->has('isMobile')) {
  244. //        if
  245.             $useragent $event->getRequest()->headers->get('User-Agent');
  246.             if (!$useragent) {
  247.                 return false;
  248.             }
  249.             $isMobile = (
  250.                 preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i'$useragent) ||
  251.                 preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i'substr($useragent04))
  252.             );
  253.             $session->set('isMobile'$isMobile);
  254.         }
  255.         if ($controller[0] instanceof SessionCheckInterface) {
  256.             if (!empty($session->get(UserConstants::USER_ID))) {
  257.                 if ($session->get(UserConstants::APPLICATION_SECRET) == $this->secretKey) {
  258.                     //if session check variable is more than 1 hour from now, update app validity but if already disabled then check on every call
  259.                     $lastCheckDateTime null;
  260.                     $appValid 1;
  261.                     $currentDateTime = new \DateTime();
  262.                     $currentTime strtotime($currentDateTime->format('Y-m-d h:i:s'));
  263.                     $appIsValidTillTime $currentTime;
  264.                     $appIsValidTillDateTime $currentDateTime;
  265. //                    $session->set('appIsValidTillTime', $appIsValidTillDateTime->format('Y-m-d h:i:s'));
  266.                     if (!empty($session->get('lastCheckAppValidityTime'))) {
  267.                         $lastCheckDateTime strtotime($session->get('lastCheckAppValidityTime'));
  268.                     } else {
  269.                         $lastCheckDateTime strtotime('2022-01-01 00:00:00');
  270.                     }
  271.                     if (!empty($session->get('appIsValidTillTime'))) {
  272.                         $appIsValidTillTime strtotime($session->get('appIsValidTillTime'));
  273.                         $appIsValidTillDateTime = new \DateTime($session->get('appIsValidTillTime'));
  274.                     } else {
  275. //                        $appIsValidTillTime=$currentDateTime;
  276. //                        $session->set('appIsValidTillTime', $appIsValidTillTime->format('Y-m-d h:i:s'));
  277.                     }
  278.                     if (!empty($session->get('appValid'))) {
  279.                         $appValid $session->get('appValid');
  280.                     }
  281.                     $secondsTillLastCheck abs($currentTime $lastCheckDateTime);
  282. //                    $session->set('secondsTillLastCheck',$secondsTillLastCheck);
  283. //                    $session->set('lastCheckAppValiditySecond', abs($currentTime - $lastCheckDateTime));
  284.                     if ($secondsTillLastCheck 7200 || $appValid == 0) {
  285.                         $appValiditySeconds $session->get('appValiditySeconds');
  286.                         $appDataJson System::getAppDataByCurl();
  287. //                        $session->set('appDataJson',$appDataJson);
  288.                         $appData json_decode($appDataJsontrue);
  289. //                        $appIsValidTillTime=$currentDateTime;
  290.                         if ($appData == null)
  291.                             $appData = [];
  292.                         if (isset($appData[$session->get(UserConstants::USER_APP_ID)])) {
  293.                             $session->set('appDataCurl'$appData[$session->get(UserConstants::USER_APP_ID)]);
  294.                             if ($appData[$session->get(UserConstants::USER_APP_ID)]['expired'] == 1) {
  295.                                 $appValid 0;
  296.                                 $appValiditySeconds 0;
  297.                             } else {
  298.                                 $appIsValidTillTime strtotime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  299.                                 $appIsValidTillDateTime = new \DateTime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  300.                                 $appValiditySeconds $appIsValidTillTime $currentTime;
  301.                                 if ($appValiditySeconds 0)
  302.                                     $appValid 0;
  303.                                 else
  304.                                     $appValid 1;
  305.                             }
  306.                         } else {
  307.                         }
  308.                         $session->set('appValiditySeconds'$appValiditySeconds);
  309.                         $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  310.                         $session->set('lastCheckAppValidityTime'$currentDateTime->format('Y-m-d h:i:s'));
  311.                         $session->set('appValid'$appValid);
  312.                     }
  313.                     $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  314.                     if ($appValid != 1) {
  315.                         $url $this->router->generate('user_logout');
  316.                         if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  317.                             if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  318.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  319.                             }
  320.                         } else {
  321.                             $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  322.                         }
  323. //                        if ($request->server->has("REQUEST_URI")) {
  324. //                            if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  325. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  326. //                                $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  327. //                            }
  328. //                        }
  329. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  330.                         $event->setController(function () use ($url) {
  331.                             return new RedirectResponse($url);
  332.                         });
  333.                     }
  334.                     $gocId $session->get(UserConstants::USER_GOC_ID);
  335.                     if ($gocId != && $gocId != "") {
  336.                         $gocDbName $session->get(UserConstants::USER_DB_NAME);
  337.                         $gocDbUser $session->get(UserConstants::USER_DB_USER);
  338.                         $gocDbPass $session->get(UserConstants::USER_DB_PASS);
  339.                         $gocDbHost $session->get(UserConstants::USER_DB_HOST);
  340. //                        $connector = $this->container->get('application_connector');
  341.                         $connector $this->applicationConnector;
  342.                         $connector->resetConnection(
  343.                             'default',
  344.                             $gocDbName,
  345.                             $gocDbUser,
  346.                             $gocDbPass,
  347.                             $gocDbHost,
  348.                             $reset false);
  349.                     }
  350.                     // User already have logged in. lets check its type
  351.                     if (
  352.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM ||
  353.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_GENERAL ||
  354.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SUPPLIER ||
  355.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_ENTITY_USER_GENERAL_USER ||
  356.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_ENTITY_USER_GROUP_OWNER ||
  357.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_CLIENT ||
  358.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_APPLICANT
  359.                     ) {
  360.                         if (!empty($session->get('TRIGGER_RESET_PASSWORD'))) {
  361.                             if ($session->get('TRIGGER_RESET_PASSWORD') == 1) {
  362.                                 $red $this->router->generate('reset_password_new_password');
  363.                                 if (!$request->request->has('remoteVerify')) {
  364.                                     $session->set('TRIGGER_RESET_PASSWORD'0);
  365.                                     $event->setController(function () use ($red) {
  366.                                         return new RedirectResponse($red);
  367.                                     });
  368.                                 }
  369.                             }
  370.                         } else if (!empty($session->get('LAST_REQUEST_URI_BEFORE_LOGIN'))) {
  371.                             if (strripos($session->get('LAST_REQUEST_URI_BEFORE_LOGIN'), 'select_data') === false) {
  372.                                 if ($session->get('LAST_REQUEST_URI_BEFORE_LOGIN') != '' && $session->get('LAST_REQUEST_URI_BEFORE_LOGIN') != null) {
  373.                                     $red $session->get('LAST_REQUEST_URI_BEFORE_LOGIN');
  374.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  375.                                     if (!$request->request->has('remoteVerify')) {
  376.                                         $event->setController(function () use ($red) {
  377.                                             return new RedirectResponse($red);
  378.                                         });
  379.                                     }
  380.                                 }
  381.                             } else {
  382.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  383.                             }
  384.                         }
  385.                     } else {
  386.                         $message "Session Not Found";
  387.                         if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  388.                         } else {
  389.                             if ($request->server->has("REQUEST_URI")) {
  390.                                 if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  391.                                     if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  392.                                         $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  393.                                     }
  394.                                 } else {
  395.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  396.                                 }
  397.                             }
  398.                         }
  399.                         if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  400.                             $session->set('jsonStrForListenerData'json_encode(array(
  401.                                 'uid' => 0,
  402.                                 'session' => [],
  403.                                 'success' => false,
  404.                                 'sessionExists' => false,
  405.                                 'hbeeErrorCode' => $hbeeErrorCode,
  406.                                 'errorStr' => $message,
  407.                                 'session_data' => [],
  408.                                 'session2' => $_SESSION,
  409.                             )));
  410.                             $url $this->router->generate('return_json_for_listener');
  411. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  412.         $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  413.                             $event->setController($this->resolver->getController($request));
  414. //                        $event->setController(function () use ($url) {
  415. //                            return new RedirectResponse($url);
  416. //                        });
  417.                         } else {
  418.                             $url $this->router->generate('user_logout');
  419.                             $event->setController(function () use ($url) {
  420.                                 return new RedirectResponse($url);
  421.                             });
  422.                         }
  423.                     }
  424.                 } else {
  425.                     $message "Session Not Found";
  426.                     if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  427.                     } else {
  428.                         if ($request->server->has("REQUEST_URI")) {
  429.                             if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  430.                                 if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  431.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  432.                                 }
  433.                             } else {
  434.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  435.                             }
  436. //                            if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  437. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  438. //                                $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  439. //                            }
  440.                         }
  441.                     }
  442.                     if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  443.                         $session->set('jsonStrForListenerData'json_encode(array(
  444.                             'uid' => 0,
  445.                             'session' => [],
  446.                             'success' => false,
  447.                             'sessionExists' => false,
  448.                             'hbeeErrorCode' => $hbeeErrorCode,
  449.                             'errorStr' => $message,
  450.                             'session_data' => [],
  451.                             'session2' => $_SESSION,
  452.                         )));
  453.                         $url $this->router->generate('return_json_for_listener');
  454. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  455.     $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  456.                         $event->setController($this->resolver->getController($request));
  457. //                        $event->setController(function () use ($url) {
  458. //                            return new RedirectResponse($url);
  459. //                        });
  460.                     } else {
  461.                         $url $this->router->generate('user_logout');
  462.                         $event->setController(function () use ($url) {
  463.                             return new RedirectResponse($url);
  464.                         });
  465.                     }
  466.                 }
  467.             } else {
  468.                 // User can't see this page until do a login. let him/her login first.
  469.                 $message "Session Not Found";
  470.                 $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  471.                 if ( $authTokenInHeader || $request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  472.                 } else {
  473.                     if ($request->server->has("REQUEST_URI")) {
  474.                         if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  475.                             if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  476.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  477.                             }
  478.                         } else {
  479.                             $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  480.                         }
  481. //                        if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  482. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  483. //                            $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  484. //                        }
  485.                     }
  486.                 }
  487.                 $session->set('jsonStrForListenerData'json_encode([]));
  488.                 if ($authTokenInHeader ||$request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  489.                     $session->set('jsonStrForListenerData'json_encode(array(
  490.                         'uid' => 0,
  491.                         'session' => [],
  492.                         'success' => false,
  493.                         'sessionExists' => false,
  494.                         'hbeeErrorCode' => $hbeeErrorCode,
  495.                         'errorStr' => $message,
  496.                         'session_data' => [],
  497.                         'session2' => $_SESSION,
  498.                     )));
  499.                     $url $this->router->generate('return_json_for_listener');
  500. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  501. $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  502.                     $event->setController($this->resolver->getController($request));
  503. //                    $event->setController(function () use ($url) {
  504. //                        return new RedirectResponse($url);
  505. //                    });
  506. //                    return new JsonResponse();
  507.                 } else {
  508.                     $url $this->router->generate('user_login');
  509. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  510.                     $event->setController(function () use ($url) {
  511.                         return new RedirectResponse($url);
  512.                     });
  513.                 }
  514.             }
  515.             $em $this->em;
  516. //            if ($CurrentRoute != "update_database_schema")
  517. //                MiscActions::decryptTrans($em, '_ALL_', 0);
  518. //            Here we got a general user who have all the right things. Let see if he/she have permission to tre current route.
  519. //            $ROUTE_LIST=json_decode($session->get(UserConstants::USER_ROUTE_LIST), true);
  520.             $PROHIBIT_LIST json_decode($session->get(UserConstants::USER_PROHIBIT_LIST), true);
  521.             $CurrentRoute $event->getRequest()->attributes->get('_route');
  522.             $PL json_decode($session->get(UserConstants::USER_POSITION_LIST), true);
  523.             if ($PL == null)
  524.                 $PL = [];
  525.             if (!empty($PL) && $session->get(UserConstants::USER_CURRENT_POSITION) == 0) {
  526.                 $url $this->router->generate('user_login_position');
  527.                 $event->setController(function () use ($url) {
  528.                     return new RedirectResponse($url);
  529.                 });
  530.             }
  531.             if ($CurrentRoute == "user_login_position") {
  532.                 if (!empty($session->get(UserConstants::USER_ID))) {
  533.                     // This is an system user. send him to system dashboard
  534.                     if ($session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM) {
  535.                         // This is an system user. send him to system dashboard
  536.                         $url $this->router->generate('system_admin_dashboard');
  537.                         $event->setController(function () use ($url) {
  538.                             return new RedirectResponse($url);
  539.                         });
  540.                     } else {
  541.                         if (!empty($session->get(UserConstants::USER_CURRENT_POSITION)) && $session->get(UserConstants::USER_CURRENT_POSITION) != 0) {
  542.                             // user position got set up. send him to the normal dashboard.
  543.                             $PL json_decode($session->get(UserConstants::USER_POSITION_LIST), true);
  544.                             if ($PL == null$PL = [];
  545.                             if (count($PL) <= 1) {
  546.                                 $url $this->router->generate('dashboard');
  547.                                 $event->setController(function () use ($url) {
  548.                                     return new RedirectResponse($url);
  549.                                 });
  550.                             }
  551.                         }
  552.                     }
  553.                 } else {
  554.                     // User can't see this page until do a login. let him/her login first.
  555.                     $url $this->router->generate('user_login');
  556.                     $event->setController(function () use ($url) {
  557.                         return new RedirectResponse($url);
  558.                     });
  559.                 }
  560.             }
  561.             if ($permissionOverride == && $CurrentRoute != "dashboard" && $CurrentRoute != $session->get(UserConstants::USER_DEFAULT_ROUTE)) {
  562.                 if ($PROHIBIT_LIST != null or $PROHIBIT_LIST != []) {
  563.                     if (in_array($CurrentRoute$PROHIBIT_LIST)) {
  564.                         // User is not authorized. send him to dashboard
  565. //                    $controller->addFlash(
  566. //                        'error',
  567. //                        'Sorry Couldnot insert Data.'
  568. //                    );
  569.                         $url $this->router->generate('permission_denied_page');
  570.                         $event->setController(function () use ($url) {
  571.                             return new RedirectResponse($url);
  572.                         });
  573.                     }
  574.                 }
  575.             }
  576.         }
  577.         if ($controller[0] instanceof LoginInterface) {
  578.             $session $this->session;
  579.             // Three situation here
  580.             //  1. Have no session
  581.             //  2. Have session but no position
  582.             //  3. Have session and position
  583.             $route $event->getRequest()->attributes->get('_route');
  584.             $systemType '_ERP';//default
  585.             $systemType $this->container->hasParameter('system_type') ? $this->container->getParameter('system_type') : '_ERP_';
  586.             if ($route == "user_login") {
  587.                 if ($request->request->get('remoteVerify'$request->query->get('remoteVerify'0)) == 1) {
  588.                     $session->clear();
  589.                 } else if (!empty($session->get(UserConstants::USER_ID))) {
  590.                     // User already have logged in. lets check its type
  591.                     if ($systemType == '_ERP_') {
  592.                         if ($session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM) {
  593.                             // This is an system user. send him to system dashboard
  594.                             $url $this->router->generate('system_admin_dashboard');
  595.                             $event->setController(function () use ($url) {
  596.                                 return new RedirectResponse($url);
  597.                             });
  598.                         } else {
  599.                             // This user is a normal user. Check if its login position got set.
  600.                             if (!empty($session->get(UserConstants::USER_CURRENT_POSITION))) {
  601.                                 // user position got set up. send him to the normal dashboard.
  602.                                 $url $this->router->generate('dashboard');
  603.                                 if ($request->request->has('remoteVerify')) {
  604.                                     $session->set('remoteVerified'1);
  605.                                     $url $this->router->generate('get_session_data_for_app');
  606.                                     $event->setController(function () use ($url) {
  607.                                         return new RedirectResponse($url);
  608.                                     });
  609.                                 }
  610.                                 $event->setController(function () use ($url) {
  611.                                     return new RedirectResponse($url);
  612.                                 });
  613.                             } else {
  614.                                 // user position have not set up. send it to the position page
  615.                                 $url $this->router->generate('user_login_position');
  616.                                 $event->setController(function () use ($url) {
  617.                                     return new RedirectResponse($url);
  618.                                 });
  619.                             }
  620.                         }
  621.                         //do nothing its default to dashboard index
  622.                     } else if ($systemType == '_BUDDYBEE_') {
  623. //                        $event->getRequest()->attributes->set('_controller', 'ApplicationBundle:BuddybeePublic:ConsultancyHomePage');
  624. //                        $event->setController($this->resolver->getController($request));
  625.                     }
  626.                 } else {
  627.                     if ($systemType == '_ERP_') {
  628.                         //do nothing its default to dashboard index
  629.                     } else if ($systemType == '_BUDDYBEE_' && $request->isMethod('GET')) {
  630.                         if ($request->request->has('oAuthData') || $request->query->has('oAuthData') || $request->query->has('code')) {
  631.                         } else {
  632.                             $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\Authentication\Controller\UserLoginController::applicantLoginAction');
  633.                             $event->setController($this->resolver->getController($request));
  634.                         }
  635.                     }
  636. //                    if ($systemType == '_BUDDYBEE_' && $request->isMethod('POST')) {
  637. //
  638. //                            $event->getRequest()->attributes->set('_controller', 'ApplicationBundle:UserLogin:applicantLogin');
  639. //                        $event->setController($this->resolver->getController($request));
  640. //                    }
  641.                 }
  642.             }
  643.         }
  644.         // Checking if its a system url request.
  645.         if ($controller[0] instanceof SystemInterface) {
  646.             // System controller.
  647.             $session $this->session;
  648.             if (!empty($session->get(UserConstants::USER_ID))) {
  649.                 if ($session->get(UserConstants::USER_TYPE) != UserConstants::USER_TYPE_SYSTEM) {
  650.                     // Kick the idiot out from here. If possible, keep a track
  651.                     $url $this->router->generate('user_logout');
  652.                     $event->setController(function () use ($url) {
  653.                         return new RedirectResponse($url);
  654.                     });
  655.                 } else {
  656.                     $lastCheckDateTime null;
  657.                     $appValid 1;
  658.                     $currentDateTime = new \DateTime();
  659.                     $currentTime strtotime($currentDateTime->format('Y-m-d h:i:s'));
  660.                     $appIsValidTillTime $currentTime;
  661.                     $appIsValidTillDateTime $currentDateTime;
  662. //                    $session->set('appIsValidTillTime', $appIsValidTillDateTime->format('Y-m-d h:i:s'));
  663.                     if (!empty($session->get('lastCheckAppValidityTime'))) {
  664.                         $lastCheckDateTime strtotime($session->get('lastCheckAppValidityTime'));
  665.                     } else {
  666.                         $lastCheckDateTime strtotime('2022-01-01 00:00:00');
  667.                     }
  668.                     if (!empty($session->get('appIsValidTillTime'))) {
  669.                         $appIsValidTillTime strtotime($session->get('appIsValidTillTime'));
  670.                         $appIsValidTillDateTime = new \DateTime($session->get('appIsValidTillTime'));
  671.                     } else {
  672. //                        $appIsValidTillTime=$currentDateTime;
  673. //                        $session->set('appIsValidTillTime', $appIsValidTillTime->format('Y-m-d h:i:s'));
  674.                     }
  675.                     if (!empty($session->get('appValid'))) {
  676.                         $appValid $session->get('appValid');
  677.                     }
  678.                     $secondsTillLastCheck abs($currentTime $lastCheckDateTime);
  679. //                    $session->set('lastCheckAppValiditySecond', abs($currentTime - $lastCheckDateTime));
  680.                     if ($secondsTillLastCheck 7200 || $appValid == 0) {
  681.                         $appValiditySeconds $session->get('appValiditySeconds');
  682.                         $appDataJson System::getAppDataByCurl();
  683.                         $appData json_decode($appDataJsontrue);
  684. //                        $appIsValidTillTime=$currentDateTime;
  685.                         if ($appData == null)
  686.                             $appData = [];
  687.                         if (isset($appData[$session->get(UserConstants::USER_APP_ID)])) {
  688.                             $session->set('appDataCurl'$appData[$session->get(UserConstants::USER_APP_ID)]);
  689.                             if ($appData[$session->get(UserConstants::USER_APP_ID)]['expired'] == 1) {
  690.                                 $appValid 0;
  691.                                 $appValiditySeconds 0;
  692.                             } else {
  693.                                 $appIsValidTillTime strtotime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  694.                                 $appIsValidTillDateTime = new \DateTime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  695.                                 $appValiditySeconds $appIsValidTillTime $currentTime;
  696.                                 if ($appValiditySeconds 0)
  697.                                     $appValid 0;
  698.                                 else
  699.                                     $appValid 1;
  700.                             }
  701.                         }
  702.                         $session->set('appValiditySeconds'$appValiditySeconds);
  703.                         $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  704.                         $session->set('lastCheckAppValidityTime'$currentDateTime->format('Y-m-d h:i:s'));
  705.                         $session->set('appValid'$appValid);
  706.                     }
  707.                     $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  708.                     if ($appValid != 1) {
  709.                         $url $this->router->generate('user_logout');
  710. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  711.                         $event->setController(function () use ($url) {
  712.                             return new RedirectResponse($url);
  713.                         });
  714.                     }
  715.                     $gocId $session->get(UserConstants::USER_GOC_ID);
  716.                     if ($gocId != && $gocId != "") {
  717.                         $gocDbName $session->get(UserConstants::USER_DB_NAME);
  718.                         $gocDbUser $session->get(UserConstants::USER_DB_USER);
  719.                         $gocDbPass $session->get(UserConstants::USER_DB_PASS);
  720.                         $gocDbHost $session->get(UserConstants::USER_DB_HOST);
  721. //                        $connector = $this->container->get('application_connector');
  722.                         $connector $this->applicationConnector;
  723.                         $connector->resetConnection(
  724.                             'default',
  725.                             $gocDbName,
  726.                             $gocDbUser,
  727.                             $gocDbPass,
  728.                             $gocDbHost,
  729.                             $reset true);
  730.                     }
  731.                 }
  732.             } else {
  733.                 // Seriously !! How did this person get this url. Track the pc if possible.
  734.                 $url $this->router->generate('user_login');
  735.                 $event->setController(function () use ($url) {
  736.                     return new RedirectResponse($url);
  737.                 });
  738.             }
  739.         }
  740.         //dashboard for diff aspects
  741.         if ($event->getRequest()->attributes->get('_route') == 'dashboard') {
  742.             $systemType '_ERP';//default
  743.             $systemType $this->container->hasParameter('system_type') ? $this->container->getParameter('system_type') : '_ERP_';
  744.             if ($systemType == '_ERP_') {
  745.                 //do nothing its default to dashboard index
  746.             } else if ($systemType == '_BUDDYBEE_') {
  747.                 $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\Buddybee\Controller\BuddybeePublicController:ConsultancyHomePageAction');
  748.                 $event->setController($this->resolver->getController($request));
  749.             } else if ($systemType == '_CENTRAL_') {
  750.                 $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\HoneybeeWeb\Controller\HoneybeeWebPublicController:CentralHomePageAction');
  751.                 $event->setController($this->resolver->getController($request));
  752.             }
  753. //            $event->setController(function() use ($url) {
  754. //                return new RedirectResponse($url);
  755. //            });
  756. //            $event->setController((\ApplicationBundle\Controller\BuddybeePublicController())->ConsultancyHomePageAction() );
  757.         }
  758.     }
  759.     public function onKernelResponse(FilterResponseEvent $event)
  760.     {
  761.         $session $this->session;
  762.         $request $event->getRequest();
  763.         $response $event->getResponse();
  764.         //temp debug
  765.         $em $this->em;
  766.         $currRoute $request->attributes->get('_route');
  767. //        if ($currRoute != "update_database_schema")
  768. //            MiscActions::encryptTrans($em, '_ALL_', 0);
  769.         if (
  770.             ($request->request->has('returnJson') || $request->request->has('remoteVerify')) &&
  771.             $request->request->has('token') &&
  772.             !in_array($currRoute, [
  773.                 'select_data_ajax',
  774.                 'select_data_api',
  775.                 'select_data_ajax_public',
  776.             ])
  777.         ) {
  778.             $currDate = new \DateTime();
  779.             $to_write '';
  780.             $to_write .= "\nToken--" $request->request->get('token''NONE') . '  : ' $currDate->format('F d Y H:i:s');
  781.             $to_write .= "\nResponse:\n
  782.             ";
  783.             if (is_string($response->getContent()))
  784.                 $to_write .= $response->getContent();
  785.             else
  786.                 $to_write .= json_encode($response->getContent());
  787. //            System::log_it($this->container->getParameter('kernel.root_dir'), $to_write, $currRoute, 1);
  788.         }
  789.         if ($session->has('remoteVerified')) {
  790.             $lifetime 86400// 1 day
  791. //            $response->headers->setCookie(Cookie::create('PHPSESSID', $event->getRequest()->cookies->get('PHPSESSID'),time()+$lifetime));
  792.             $response->headers->set('Access-Control-Allow-Origin'$event->getRequest()->headers->get('origin'));
  793.             $response->headers->set('Access-Control-Allow-Credentials''true');
  794. //            $response->headers->setCookie(Cookie::create('PIKAMASTER', $event->getRequest()->cookies->get('PHPSESSID'),time()+$lifetime));
  795.         } else {
  796.             // create a hash and set it as a response header
  797. //        $hash = sha1($response->getContent().$token);
  798. //            $response->headers->set('Access-Control-Allow-Origin', '*');
  799. //            $response->headers->set('Access-Control-Allow-Credentials', 'true');
  800.             $response->headers->set('Access-Control-Allow-Origin'$event->getRequest()->headers->get('origin'));
  801.             $response->headers->set('Access-Control-Allow-Credentials''true');
  802. //            $response->headers->setCookie(Cookie::create('honeybeeCAuthId', $session->get(UserConstants::USER_ID)));
  803. //            $response->headers->setCookie(Cookie::create('honeybeeCAuthId2', $event->getRequest()->cookies->get('PHPSESSID')));
  804.         }
  805. //        if($session->has(UserConstants::USER_ID)) {
  806. //            if ($session->get(UserConstants::USER_ID) == '' || $session->get(UserConstants::USER_ID) == '') {
  807. //                $response->headers->setCookie(Cookie::create('USRCKIE', ''));
  808. //                $response->headers->setCookie(Cookie::create('REMEMBERME', ''));
  809. //                $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', ''));
  810. //            }
  811. //        }
  812. //        else
  813. //        {
  814. //            $response->headers->setCookie(Cookie::create('USRCKIE', ''));
  815. //            $response->headers->setCookie(Cookie::create('REMEMBERME', ''));
  816. //            $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', ''));
  817. //        }
  818.         if ($session->has('CLEARLOGIN')) {
  819.             if ($session->get('CLEARLOGIN') == 1) {
  820.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  821.                     $response->headers->setCookie(Cookie::create('USRCKIE'''));
  822.                     $response->headers->setCookie(Cookie::create('REMEMBERME'''));
  823.                     $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE'''));
  824.                 } else {
  825.                     $response->headers->setCookie(new Cookie('USRCKIE'''));
  826.                     $response->headers->setCookie(new Cookie('REMEMBERME'''));
  827.                     $response->headers->setCookie(new Cookie('CLEARLOGINCOOKIE'''));
  828.                 }
  829.             }
  830.             $session->set('CLEARLOGIN'0);
  831.         } else {
  832.         }
  833.         if ($session->has('REMEMBERME')) {
  834.             if ($session->get('REMEMBERME') == 1) {
  835.                 $lifetime 86400// 1 day
  836.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  837.                     $response->headers->setCookie(Cookie::create('USRCKIE'json_encode(array(
  838.                             'uid' => $session->get(UserConstants::USER_ID),
  839.                             'ut' => $session->get(UserConstants::USER_TYPE),
  840.                             'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  841.                             'gocId' => $session->get(UserConstants::USER_GOC_ID),
  842.                         )
  843.                     ), time() + $lifetime
  844.                     )
  845.                     );
  846.                     $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''PIKA'));
  847.                 } else {
  848.                     $response->headers->setCookie(new Cookie('USRCKIE'json_encode(array(
  849.                                 'uid' => $session->get(UserConstants::USER_ID),
  850.                                 'ut' => $session->get(UserConstants::USER_TYPE),
  851.                                 'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  852.                                 'gocId' => $session->get(UserConstants::USER_GOC_ID),
  853.                             )
  854.                         ), time() + $lifetime
  855.                         )
  856.                     );
  857.                     $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''PIKA'));
  858.                 }
  859.             } else {
  860.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  861.                     $response->headers->setCookie(Cookie::create('USRCKIE'json_encode(array(
  862.                                 'uid' => $session->get(UserConstants::USER_ID),
  863.                                 'ut' => $session->get(UserConstants::USER_TYPE),
  864.                                 'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  865.                                 'gocId' => $session->get(UserConstants::USER_GOC_ID),
  866.                             )
  867.                         )
  868.                     )
  869.                     );
  870.                     $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''MASTER'));
  871.                 } else {
  872.                     $response->headers->setCookie(new Cookie('USRCKIE'json_encode(array(
  873.                                     'uid' => $session->get(UserConstants::USER_ID),
  874.                                     'ut' => $session->get(UserConstants::USER_TYPE),
  875.                                     'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  876.                                     'gocId' => $session->get(UserConstants::USER_GOC_ID),
  877.                                 )
  878.                             )
  879.                         )
  880.                     );
  881.                     $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''MASTER'));
  882.                 }
  883.             }
  884.         } else {
  885.             if (version_compare(PHP_VERSION'7.0.0''>='))
  886.                 $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''CHU'));
  887.             else
  888.                 $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''CHU'));
  889.         }
  890.     }
  891. }