src/ApplicationBundle/Listener/SessionListener.php line 974

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.                 $currentDateTime = new \DateTime();
  73.                 $currTs $currentDateTime->format('U');
  74.                 if ($tvp['timeout'] > $currTs || $tvp['timeout'] == 0) {
  75.                     if (isset($tvp['token']))
  76.                         $request->request->set('hbeeSessionToken'$tvp['token']);
  77.                 } else {
  78.                     $url $this->router->generate('permission_denied_page');
  79.                     $event->setController(function () use ($url) {
  80.                         return new RedirectResponse($url);
  81.                     });
  82.                 }
  83.             }
  84.         }
  85.         //check if mobile
  86.         $session $this->session;
  87.         if (empty($session->get('appValiditySeconds'))) {  //how many sevonds is valid
  88.             $session->set('appValiditySeconds''_UNSET_');
  89.         }
  90.         if (empty($session->get('devAdminMode'))) {  //how many sevonds is valid
  91.             $session->set('devAdminMode'0);
  92.         }
  93.         if ($devAdminMode != '_UNCHANGED_')
  94.             $session->set('devAdminMode'$devAdminMode);
  95.         $to_set_session_data = [];
  96.         $CurrentRoute $event->getRequest()->attributes->get('_route');
  97.         if ($CurrentRoute == 'switch_app' || $CurrentRoute == 'app_switch_app_api') {
  98.             if ($request->query->has('hbeeSessionToken')) {
  99.                 $em_goc $this->em_goc;
  100.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->query->get('hbeeSessionToken'))['sessionData'];
  101.                 if ($to_set_session_data != null) {
  102.                     foreach ($to_set_session_data as $k => $d) {
  103.                         //check if mobile
  104.                         $session->set($k$d);
  105.                     }
  106.                 } else {
  107.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  108.                 }
  109.             } else {
  110.                 $url $this->router->generate('user_login');
  111.                 if ($CurrentRoute == 'app_switch_app_api')
  112.                     $url .= ("?csToken=" $request->query->get('csToken''') . "&spd=" $request->query->get('spd''') . "&remoteVerify=1");
  113.                 else
  114.                     $url .= ("?csToken=" $request->query->get('csToken''') . "&spd=" $request->query->get('spd''') . "&remoteVerify=" $request->query->get('remoteVerify'0));
  115.                 $session->clear();
  116.                 $session->set('CLEARLOGIN'1);
  117.                 $event->setController(function () use ($url) {
  118.                     return new RedirectResponse($url);
  119.                 });
  120.             }
  121.         }
  122. //        if ($CurrentRoute == 'select_second_layer_api' ) {
  123. //
  124. //            if ($request->query->has('hbeeSessionToken')) {
  125. //
  126. //                $em_goc = $this->em_goc;
  127. //
  128. //
  129. //                $to_set_session_data = MiscActions::GetSessionDataFromToken($em_goc, $request->query->get('hbeeSessionToken'))['sessionData'];
  130. //                if ($to_set_session_data != null) {
  131. //                    foreach ($to_set_session_data as $k => $d) {
  132. //
  133. //                        //check if mobile
  134. //                        $session->set($k, $d);
  135. //                    }
  136. //
  137. //                } else {
  138. //                    $hbeeErrorCode = UserConstants::ERROR_TOKEN_EXPIRED;
  139. //                }
  140. //
  141. //            } else {
  142. //
  143. //
  144. //            }
  145. //        }
  146.         if (!$session->has(UserConstants::USER_ID)) {
  147.             if ($request->request->has('token')) {
  148.                 $em_goc $this->em_goc;
  149.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->request->get('token'))['sessionData'];
  150.                 if ($to_set_session_data != null) {
  151.                     foreach ($to_set_session_data as $k => $d) {
  152.                         //check if mobile
  153.                         $session->set($k$d);
  154.                     }
  155.                 } else {
  156.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  157.                 }
  158.             } else if ($request->request->has('hbeeSessionToken')) {
  159.                 $em_goc $this->em_goc;
  160.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->request->get('hbeeSessionToken'))['sessionData'];
  161.                 if ($to_set_session_data != null) {
  162.                     foreach ($to_set_session_data as $k => $d) {
  163.                         //check if mobile
  164.                         $session->set($k$d);
  165.                     }
  166.                 } else {
  167.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  168.                 }
  169.             } else if ($request->query->has('hbeeSessionToken')) {
  170.                 $em_goc $this->em_goc;
  171.                 $to_set_session_data MiscActions::GetSessionDataFromToken($em_goc$request->query->get('hbeeSessionToken'))['sessionData'];
  172.                 if ($to_set_session_data != null) {
  173.                     foreach ($to_set_session_data as $k => $d) {
  174.                         //check if mobile
  175.                         $session->set($k$d);
  176.                     }
  177.                 } else {
  178.                     $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  179.                 }
  180.             } else if ($request->request->has('sessionData')) {
  181.                 $to_set_session_data $request->request->get('sessionData');
  182.                 foreach ($to_set_session_data as $k => $d) {
  183.                     //check if mobile
  184.                     $session->set($k$d);
  185.                 }
  186.             } else if ($request->request->has('sessionDataString')) {
  187.                 $to_set_session_data json_decode($request->request->get('sessionDataString'), true);
  188.                 if ($to_set_session_data != null) {
  189.                     foreach ($to_set_session_data as $k => $d) {
  190.                         //check if mobile
  191.                         $session->set($k$d);
  192.                     }
  193.                 }
  194.             }
  195.             if ($request->query->has('iFrameData')) {
  196.                 $session->set(UserConstants::USER_ID$request->query->get('uId'));
  197.                 $session->set(UserConstants::USER_NAME$request->query->get('uName'));
  198.                 $session->set(UserConstants::USER_LOGIN_ID$request->query->get('loginId'));
  199.                 $session->set(UserConstants::APPLICATION_SECRET$request->query->get('sKey'));
  200.                 $session->set(UserConstants::USER_GOC_ID$request->query->get('gocId'));
  201.                 $session->set(UserConstants::USER_DB_NAME$request->query->get('gocDb'));
  202.                 $session->set(UserConstants::USER_DB_USER$request->query->get('gocUsr'));
  203.                 $session->set(UserConstants::USER_DB_PASS$request->query->get('gocPass'));
  204.                 $session->set(UserConstants::USER_DB_HOST$request->query->get('gocDh'));
  205.                 $session->set(UserConstants::USER_TYPE$request->query->get('uType'));
  206.                 $session->set(UserConstants::USER_CURRENT_POSITION$request->query->get('currPos'));
  207.                 $session->set(UserConstants::USER_COMPANY_ID$request->query->get('cmpId'));
  208.                 $session->set(UserConstants::USER_APP_ID$request->query->get('uAId'));
  209.                 $session->set(UserConstants::USER_IMAGE"");
  210.                 $session->set('productNameDisplayType'0);
  211.                 $cmpImg $request->query->get('cmpIm');
  212.                 $cmpName $request->query->get('cmpN');
  213.                 $app_cid $request->query->get('uAId') . "_" $request->query->get('cmpId');
  214.                 $cid $request->query->get('cmpId');
  215.                 $session->set('userCompanyDarkVibrantList'json_encode(array(
  216.                     $cid => ""
  217.                 )));
  218.                 $cmpNameListStr json_encode(array(
  219.                     $cid => $cmpName
  220.                 ));
  221.                 $cmpImageListStr json_encode(array(
  222.                     $cid => $cmpImg
  223.                 ));
  224.                 $session->set(UserConstants::USER_COMPANY_NAME_LIST$cmpNameListStr);
  225.                 $session->set(UserConstants::USER_COMPANY_IMAGE_LIST$cmpImageListStr);
  226.                 $session->set(UserConstants::USER_PROHIBIT_LIST"[]");
  227.                 $session->set(UserConstants::ALL_MODULE_ACCESS_FLAG1);
  228.             }
  229.         }
  230. //        $path=$this->kernelRootDir. '/gifnoc/invdata.json';
  231. //        file_put_contents($path, json_encode(array(
  232. //            'sessionDataString'=>$request->request->get('sessionDataString'),
  233. //            'productCode'=>$request->request->get('productCode'),
  234. //            'userId'=>$session->get(UserConstants::USER_ID),
  235. //            'sessionData'=>json_decode($request->request->get('sessionDataString'),true),
  236. //            'to_set_session_data'=>$to_set_session_data,
  237. ////            'invData'=>$data_searched,
  238. //
  239. //        )));//overwrite
  240.         if (!$session->has('isMobile')) {
  241. //        if
  242.             $useragent $event->getRequest()->headers->get('User-Agent');
  243.             if (!$useragent) {
  244.                 return false;
  245.             }
  246.             $isMobile = (
  247.                 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) ||
  248.                 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))
  249.             );
  250.             $session->set('isMobile'$isMobile);
  251.         }
  252.         if ($controller[0] instanceof SessionCheckInterface) {
  253.             if (!empty($session->get(UserConstants::USER_ID))) {
  254.                 if ($session->get(UserConstants::APPLICATION_SECRET) == $this->secretKey) {
  255.                     //if session check variable is more than 1 hour from now, update app validity but if already disabled then check on every call
  256.                     $lastCheckDateTime null;
  257.                     $appValid 1;
  258.                     $currentDateTime = new \DateTime();
  259.                     $currentTime strtotime($currentDateTime->format('Y-m-d h:i:s'));
  260.                     $appIsValidTillTime $currentTime;
  261.                     $appIsValidTillDateTime $currentDateTime;
  262. //                    $session->set('appIsValidTillTime', $appIsValidTillDateTime->format('Y-m-d h:i:s'));
  263.                     if (!empty($session->get('lastCheckAppValidityTime'))) {
  264.                         $lastCheckDateTime strtotime($session->get('lastCheckAppValidityTime'));
  265.                     } else {
  266.                         $lastCheckDateTime strtotime('2022-01-01 00:00:00');
  267.                     }
  268.                     if (!empty($session->get('appIsValidTillTime'))) {
  269.                         $appIsValidTillTime strtotime($session->get('appIsValidTillTime'));
  270.                         $appIsValidTillDateTime = new \DateTime($session->get('appIsValidTillTime'));
  271.                     } else {
  272. //                        $appIsValidTillTime=$currentDateTime;
  273. //                        $session->set('appIsValidTillTime', $appIsValidTillTime->format('Y-m-d h:i:s'));
  274.                     }
  275.                     if (!empty($session->get('appValid'))) {
  276.                         $appValid $session->get('appValid');
  277.                     }
  278.                     $secondsTillLastCheck abs($currentTime $lastCheckDateTime);
  279. //                    $session->set('secondsTillLastCheck',$secondsTillLastCheck);
  280. //                    $session->set('lastCheckAppValiditySecond', abs($currentTime - $lastCheckDateTime));
  281.                     if ($secondsTillLastCheck 7200 || $appValid == 0) {
  282.                         $appValiditySeconds $session->get('appValiditySeconds');
  283.                         $appDataJson System::getAppDataByCurl();
  284. //                        $session->set('appDataJson',$appDataJson);
  285.                         $appData json_decode($appDataJsontrue);
  286. //                        $appIsValidTillTime=$currentDateTime;
  287.                         if ($appData == null)
  288.                             $appData = [];
  289.                         if (isset($appData[$session->get(UserConstants::USER_APP_ID)])) {
  290.                             $session->set('appDataCurl'$appData[$session->get(UserConstants::USER_APP_ID)]);
  291.                             if ($appData[$session->get(UserConstants::USER_APP_ID)]['expired'] == 1) {
  292.                                 $appValid 0;
  293.                                 $appValiditySeconds 0;
  294.                             } else {
  295.                                 $appIsValidTillTime strtotime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  296.                                 $appIsValidTillDateTime = new \DateTime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  297.                                 $appValiditySeconds $appIsValidTillTime $currentTime;
  298.                                 if ($appValiditySeconds 0)
  299.                                     $appValid 0;
  300.                                 else
  301.                                     $appValid 1;
  302.                             }
  303.                         } else {
  304.                         }
  305.                         $session->set('appValiditySeconds'$appValiditySeconds);
  306.                         $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  307.                         $session->set('lastCheckAppValidityTime'$currentDateTime->format('Y-m-d h:i:s'));
  308.                         $session->set('appValid'$appValid);
  309.                     }
  310.                     $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  311.                     if ($appValid != 1) {
  312.                         $url $this->router->generate('user_logout');
  313.                         if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  314.                             if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  315.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  316.                             }
  317.                         } else {
  318.                             $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  319.                         }
  320. //                        if ($request->server->has("REQUEST_URI")) {
  321. //                            if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  322. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  323. //                                $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  324. //                            }
  325. //                        }
  326. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  327.                         $event->setController(function () use ($url) {
  328.                             return new RedirectResponse($url);
  329.                         });
  330.                     }
  331.                     $gocId $session->get(UserConstants::USER_GOC_ID);
  332.                     if ($gocId != && $gocId != "") {
  333.                         $gocDbName $session->get(UserConstants::USER_DB_NAME);
  334.                         $gocDbUser $session->get(UserConstants::USER_DB_USER);
  335.                         $gocDbPass $session->get(UserConstants::USER_DB_PASS);
  336.                         $gocDbHost $session->get(UserConstants::USER_DB_HOST);
  337. //                        $connector = $this->container->get('application_connector');
  338.                         $connector $this->applicationConnector;
  339.                         $connector->resetConnection(
  340.                             'default',
  341.                             $gocDbName,
  342.                             $gocDbUser,
  343.                             $gocDbPass,
  344.                             $gocDbHost,
  345.                             $reset false);
  346.                     }
  347.                     // User already have logged in. lets check its type
  348.                     if (
  349.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM ||
  350.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_GENERAL ||
  351.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SUPPLIER ||
  352.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_ENTITY_USER_GENERAL_USER ||
  353.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_ENTITY_USER_GROUP_OWNER ||
  354.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_CLIENT ||
  355.                         $session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_APPLICANT
  356.                     ) {
  357.                         if (!empty($session->get('TRIGGER_RESET_PASSWORD')) || $session->get('IS_EMAIL_VERIFIED'0) == 0) {
  358.                             if (!empty($session->get('TRIGGER_RESET_PASSWORD'))) {
  359.                                 if ($session->get('TRIGGER_RESET_PASSWORD') == && !$authTokenInHeader) {
  360.                                     $red $this->router->generate('reset_password_new_password');
  361.                                     if (!$request->request->has('remoteVerify')) {
  362.                                         $session->set('TRIGGER_RESET_PASSWORD'0);
  363.                                         $event->setController(function () use ($red) {
  364.                                             return new RedirectResponse($red);
  365.                                         });
  366.                                     }
  367.                                 }
  368.                             }
  369.                             if ($session->get('IS_EMAIL_VERIFIED') == && !$authTokenInHeader) {
  370.                                 $red $this->router->generate('verify_email');
  371.                                 if (!$request->request->has('remoteVerify')) {
  372.                                     $event->setController(function () use ($red) {
  373.                                         return new RedirectResponse($red);
  374.                                     });
  375.                                 }
  376.                             }
  377.                         } else if (!empty($session->get('LAST_REQUEST_URI_BEFORE_LOGIN'))) {
  378.                             if (strripos($session->get('LAST_REQUEST_URI_BEFORE_LOGIN'), 'select_data') === false) {
  379.                                 if ($session->get('LAST_REQUEST_URI_BEFORE_LOGIN') != '' && $session->get('LAST_REQUEST_URI_BEFORE_LOGIN') != null) {
  380.                                     $red $session->get('LAST_REQUEST_URI_BEFORE_LOGIN');
  381.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  382.                                     if (!$request->request->has('remoteVerify')) {
  383.                                         $event->setController(function () use ($red) {
  384.                                             return new RedirectResponse($red);
  385.                                         });
  386.                                     }
  387.                                 }
  388.                             } else {
  389.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  390.                             }
  391.                         }
  392.                     } else {
  393.                         $message "Session Not Found";
  394.                         if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  395.                         } else {
  396.                             if ($request->server->has("REQUEST_URI")) {
  397.                                 if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  398.                                     if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  399.                                         $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  400.                                     }
  401.                                 } else {
  402.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  403.                                 }
  404.                             }
  405.                         }
  406.                         if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  407.                             $session->set('jsonStrForListenerData'json_encode(array(
  408.                                 'uid' => 0,
  409.                                 'session' => [],
  410.                                 'success' => false,
  411.                                 'sessionExists' => false,
  412.                                 'hbeeErrorCode' => $hbeeErrorCode,
  413.                                 'errorStr' => $message,
  414.                                 'session_data' => [],
  415.                                 'session2' => $_SESSION,
  416.                             )));
  417.                             $url $this->router->generate('return_json_for_listener');
  418. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  419.                             $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  420.                             $event->setController($this->resolver->getController($request));
  421. //                        $event->setController(function () use ($url) {
  422. //                            return new RedirectResponse($url);
  423. //                        });
  424.                         } else {
  425.                             $url $this->router->generate('user_logout');
  426.                             $event->setController(function () use ($url) {
  427.                                 return new RedirectResponse($url);
  428.                             });
  429.                         }
  430.                     }
  431.                 } else {
  432.                     $message "Session Not Found";
  433.                     if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  434.                     } else {
  435.                         if ($request->server->has("REQUEST_URI")) {
  436.                             if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  437.                                 if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  438.                                     $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  439.                                 }
  440.                             } else {
  441.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  442.                             }
  443. //                            if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  444. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  445. //                                $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  446. //                            }
  447.                         }
  448.                     }
  449.                     if ($request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  450.                         $session->set('jsonStrForListenerData'json_encode(array(
  451.                             'uid' => 0,
  452.                             'session' => [],
  453.                             'success' => false,
  454.                             'sessionExists' => false,
  455.                             'hbeeErrorCode' => $hbeeErrorCode,
  456.                             'errorStr' => $message,
  457.                             'session_data' => [],
  458.                             'session2' => $_SESSION,
  459.                         )));
  460.                         $url $this->router->generate('return_json_for_listener');
  461. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  462.                         $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  463.                         $event->setController($this->resolver->getController($request));
  464. //                        $event->setController(function () use ($url) {
  465. //                            return new RedirectResponse($url);
  466. //                        });
  467.                     } else {
  468.                         $url $this->router->generate('user_logout');
  469.                         $event->setController(function () use ($url) {
  470.                             return new RedirectResponse($url);
  471.                         });
  472.                     }
  473.                 }
  474.             } else {
  475.                 // User can't see this page until do a login. let him/her login first.
  476.                 $message "Session Not Found";
  477.                 $hbeeErrorCode UserConstants::ERROR_TOKEN_EXPIRED;
  478.                 if ($authTokenInHeader || $request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  479.                 } else {
  480.                     if ($request->server->has("REQUEST_URI")) {
  481.                         if (strripos($request->server->get('REQUEST_URI'), 'select_data') === false) {
  482.                             if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  483.                                 $session->set('LAST_REQUEST_URI_BEFORE_LOGIN'$request->server->get('REQUEST_URI'));
  484.                             }
  485.                         } else {
  486.                             $session->set('LAST_REQUEST_URI_BEFORE_LOGIN''');
  487.                         }
  488. //                        if ($request->server->get('REQUEST_URI') != '/' && $request->server->get('REQUEST_URI') != '') {
  489. ////                            return $this->redirect($request->request->get('HTTP_REFERER'));
  490. //                            $session->set('LAST_REQUEST_URI_BEFORE_LOGIN', $request->server->get('REQUEST_URI'));
  491. //                        }
  492.                     }
  493.                 }
  494.                 $session->set('jsonStrForListenerData'json_encode([]));
  495.                 if ($authTokenInHeader || $request->request->has('remoteVerify') || $request->request->has('returnJson') || $request->query->has('returnJson')) {
  496.                     $session->set('jsonStrForListenerData'json_encode(array(
  497.                         'uid' => 0,
  498.                         'session' => [],
  499.                         'success' => false,
  500.                         'sessionExists' => false,
  501.                         'hbeeErrorCode' => $hbeeErrorCode,
  502.                         'errorStr' => $message,
  503.                         'session_data' => [],
  504.                         'session2' => $_SESSION,
  505.                     )));
  506.                     $url $this->router->generate('return_json_for_listener');
  507. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  508.                     $event->getRequest()->attributes->set('_controller''ApplicationBundle:PublicPages:ReturnJsonForListener');
  509.                     $event->setController($this->resolver->getController($request));
  510. //                    $event->setController(function () use ($url) {
  511. //                        return new RedirectResponse($url);
  512. //                    });
  513. //                    return new JsonResponse();
  514.                 } else {
  515.                     $url $this->router->generate('user_login');
  516. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  517.                     $event->setController(function () use ($url) {
  518.                         return new RedirectResponse($url);
  519.                     });
  520.                 }
  521.             }
  522.             $em $this->em;
  523. //            if ($CurrentRoute != "update_database_schema")
  524. //                MiscActions::decryptTrans($em, '_ALL_', 0);
  525. //            Here we got a general user who have all the right things. Let see if he/she have permission to tre current route.
  526. //            $ROUTE_LIST=json_decode($session->get(UserConstants::USER_ROUTE_LIST), true);
  527.             $PROHIBIT_LIST json_decode($session->get(UserConstants::USER_PROHIBIT_LIST), true);
  528.             $CurrentRoute $event->getRequest()->attributes->get('_route');
  529.             $PL_unfiltered json_decode($session->get(UserConstants::USER_POSITION_LIST), true);
  530.             if ($PL_unfiltered == null)
  531.                 $PL_unfiltered = [];
  532.             $PL = [];
  533.             foreach ($PL_unfiltered as $PLU) {
  534.                 if ($PLU != '' && $PLU != " " && $PLU != && $PLU != null)
  535.                     $PL[] = $PLU;
  536.             }
  537.             if (!empty($PL) && $session->get(UserConstants::USER_CURRENT_POSITION) == 0) {
  538.                 $url $this->router->generate('user_login_position');
  539.                 $event->setController(function () use ($url) {
  540.                     return new RedirectResponse($url);
  541.                 });
  542.             }
  543.             if ($CurrentRoute == "user_login_position") {
  544.                 if (!empty($session->get(UserConstants::USER_ID))) {
  545.                     // This is an system user. send him to system dashboard
  546.                     if ($session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM) {
  547.                         // This is an system user. send him to system dashboard
  548.                         $url $this->router->generate('system_admin_dashboard');
  549.                         $event->setController(function () use ($url) {
  550.                             return new RedirectResponse($url);
  551.                         });
  552.                     } else {
  553.                         if (!empty($session->get(UserConstants::USER_CURRENT_POSITION)) && $session->get(UserConstants::USER_CURRENT_POSITION) != 0) {
  554.                             // user position got set up. send him to the normal dashboard.
  555.                             $PL json_decode($session->get(UserConstants::USER_POSITION_LIST), true);
  556.                             if ($PL == null$PL = [];
  557.                             if (count($PL) <= 1) {
  558.                                 $url $this->router->generate('dashboard');
  559.                                 $event->setController(function () use ($url) {
  560.                                     return new RedirectResponse($url);
  561.                                 });
  562.                             }
  563.                         }
  564.                     }
  565.                 } else {
  566.                     // User can't see this page until do a login. let him/her login first.
  567.                     $url $this->router->generate('user_login');
  568.                     $event->setController(function () use ($url) {
  569.                         return new RedirectResponse($url);
  570.                     });
  571.                 }
  572.             }
  573.             if ($permissionOverride == && $CurrentRoute != "dashboard" && $CurrentRoute != $session->get(UserConstants::USER_DEFAULT_ROUTE)) {
  574.                 if ($PROHIBIT_LIST != null or $PROHIBIT_LIST != []) {
  575.                     if (in_array($CurrentRoute$PROHIBIT_LIST)) {
  576.                         // User is not authorized. send him to dashboard
  577. //                    $controller->addFlash(
  578. //                        'error',
  579. //                        'Sorry Couldnot insert Data.'
  580. //                    );
  581.                         $url $this->router->generate('permission_denied_page');
  582.                         $event->setController(function () use ($url) {
  583.                             return new RedirectResponse($url);
  584.                         });
  585.                     }
  586.                 }
  587.             }
  588.         }
  589.         if ($controller[0] instanceof LoginInterface) {
  590.             $session $this->session;
  591.             // Three situation here
  592.             //  1. Have no session
  593.             //  2. Have session but no position
  594.             //  3. Have session and position
  595.             $route $event->getRequest()->attributes->get('_route');
  596.             $systemType '_ERP';//default
  597.             $systemType $this->container->hasParameter('system_type') ? $this->container->getParameter('system_type') : '_ERP_';
  598.             if ($route == "user_login") {
  599.                 if ($request->request->get('remoteVerify'$request->query->get('remoteVerify'0)) == 1) {
  600.                     $session->clear();
  601.                 } else if (!empty($session->get(UserConstants::USER_ID))) {
  602.                     // User already have logged in. lets check its type
  603.                     if ($systemType == '_ERP_') {
  604.                         if ($session->get(UserConstants::USER_TYPE) == UserConstants::USER_TYPE_SYSTEM) {
  605.                             // This is an system user. send him to system dashboard
  606.                             $url $this->router->generate('system_admin_dashboard');
  607.                             $event->setController(function () use ($url) {
  608.                                 return new RedirectResponse($url);
  609.                             });
  610.                         } else {
  611.                             // This user is a normal user. Check if its login position got set.
  612.                             if (!empty($session->get(UserConstants::USER_CURRENT_POSITION))) {
  613.                                 // user position got set up. send him to the normal dashboard.
  614.                                 $url $this->router->generate('dashboard');
  615.                                 if ($request->request->has('remoteVerify')) {
  616.                                     $session->set('remoteVerified'1);
  617.                                     $url $this->router->generate('get_session_data_for_app');
  618.                                     $event->setController(function () use ($url) {
  619.                                         return new RedirectResponse($url);
  620.                                     });
  621.                                 }
  622.                                 $event->setController(function () use ($url) {
  623.                                     return new RedirectResponse($url);
  624.                                 });
  625.                             } else {
  626.                                 // user position have not set up. send it to the position page
  627.                                 $url $this->router->generate('user_login_position');
  628.                                 $event->setController(function () use ($url) {
  629.                                     return new RedirectResponse($url);
  630.                                 });
  631.                             }
  632.                         }
  633.                         //do nothing its default to dashboard index
  634.                     } else if ($systemType == '_BUDDYBEE_') {
  635. //                        $event->getRequest()->attributes->set('_controller', 'ApplicationBundle:BuddybeePublic:ConsultancyHomePage');
  636. //                        $event->setController($this->resolver->getController($request));
  637.                     }
  638.                 } else {
  639.                     if ($systemType == '_ERP_') {
  640.                         //do nothing its default to dashboard index
  641.                     } else if ($systemType == '_BUDDYBEE_' && $request->isMethod('GET')) {
  642.                         if ($request->request->has('oAuthData') || $request->query->has('oAuthData') || $request->query->has('code')) {
  643.                         } else {
  644.                             $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\Authentication\Controller\UserLoginController::applicantLoginAction');
  645.                             $event->setController($this->resolver->getController($request));
  646.                         }
  647.                     }
  648. //                    if ($systemType == '_BUDDYBEE_' && $request->isMethod('POST')) {
  649. //
  650. //                            $event->getRequest()->attributes->set('_controller', 'ApplicationBundle:UserLogin:applicantLogin');
  651. //                        $event->setController($this->resolver->getController($request));
  652. //                    }
  653.                 }
  654.             }
  655.         }
  656.         // Checking if its a system url request.
  657.         if ($controller[0] instanceof SystemInterface) {
  658.             // System controller.
  659.             $session $this->session;
  660.             if (!empty($session->get(UserConstants::USER_ID))) {
  661.                 if ($session->get(UserConstants::USER_TYPE) != UserConstants::USER_TYPE_SYSTEM) {
  662.                     // Kick the idiot out from here. If possible, keep a track
  663.                     $url $this->router->generate('user_logout');
  664.                     $event->setController(function () use ($url) {
  665.                         return new RedirectResponse($url);
  666.                     });
  667.                 } else {
  668.                     $lastCheckDateTime null;
  669.                     $appValid 1;
  670.                     $currentDateTime = new \DateTime();
  671.                     $currentTime strtotime($currentDateTime->format('Y-m-d h:i:s'));
  672.                     $appIsValidTillTime $currentTime;
  673.                     $appIsValidTillDateTime $currentDateTime;
  674. //                    $session->set('appIsValidTillTime', $appIsValidTillDateTime->format('Y-m-d h:i:s'));
  675.                     if (!empty($session->get('lastCheckAppValidityTime'))) {
  676.                         $lastCheckDateTime strtotime($session->get('lastCheckAppValidityTime'));
  677.                     } else {
  678.                         $lastCheckDateTime strtotime('2022-01-01 00:00:00');
  679.                     }
  680.                     if (!empty($session->get('appIsValidTillTime'))) {
  681.                         $appIsValidTillTime strtotime($session->get('appIsValidTillTime'));
  682.                         $appIsValidTillDateTime = new \DateTime($session->get('appIsValidTillTime'));
  683.                     } else {
  684. //                        $appIsValidTillTime=$currentDateTime;
  685. //                        $session->set('appIsValidTillTime', $appIsValidTillTime->format('Y-m-d h:i:s'));
  686.                     }
  687.                     if (!empty($session->get('appValid'))) {
  688.                         $appValid $session->get('appValid');
  689.                     }
  690.                     $secondsTillLastCheck abs($currentTime $lastCheckDateTime);
  691. //                    $session->set('lastCheckAppValiditySecond', abs($currentTime - $lastCheckDateTime));
  692.                     if ($secondsTillLastCheck 7200 || $appValid == 0) {
  693.                         $appValiditySeconds $session->get('appValiditySeconds');
  694.                         $appDataJson System::getAppDataByCurl();
  695.                         $appData json_decode($appDataJsontrue);
  696. //                        $appIsValidTillTime=$currentDateTime;
  697.                         if ($appData == null)
  698.                             $appData = [];
  699.                         if (isset($appData[$session->get(UserConstants::USER_APP_ID)])) {
  700.                             $session->set('appDataCurl'$appData[$session->get(UserConstants::USER_APP_ID)]);
  701.                             if ($appData[$session->get(UserConstants::USER_APP_ID)]['expired'] == 1) {
  702.                                 $appValid 0;
  703.                                 $appValiditySeconds 0;
  704.                             } else {
  705.                                 $appIsValidTillTime strtotime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  706.                                 $appIsValidTillDateTime = new \DateTime($appData[$session->get(UserConstants::USER_APP_ID)]['suspensionDate']);
  707.                                 $appValiditySeconds $appIsValidTillTime $currentTime;
  708.                                 if ($appValiditySeconds 0)
  709.                                     $appValid 0;
  710.                                 else
  711.                                     $appValid 1;
  712.                             }
  713.                         }
  714.                         $session->set('appValiditySeconds'$appValiditySeconds);
  715.                         $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  716.                         $session->set('lastCheckAppValidityTime'$currentDateTime->format('Y-m-d h:i:s'));
  717.                         $session->set('appValid'$appValid);
  718.                     }
  719.                     $session->set('appIsValidTillTime'$appIsValidTillDateTime->format('Y-m-d h:i:s'));
  720.                     if ($appValid != 1) {
  721.                         $url $this->router->generate('user_logout');
  722. //                $request->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', 1));
  723.                         $event->setController(function () use ($url) {
  724.                             return new RedirectResponse($url);
  725.                         });
  726.                     }
  727.                     $gocId $session->get(UserConstants::USER_GOC_ID);
  728.                     if ($gocId != && $gocId != "") {
  729.                         $gocDbName $session->get(UserConstants::USER_DB_NAME);
  730.                         $gocDbUser $session->get(UserConstants::USER_DB_USER);
  731.                         $gocDbPass $session->get(UserConstants::USER_DB_PASS);
  732.                         $gocDbHost $session->get(UserConstants::USER_DB_HOST);
  733. //                        $connector = $this->container->get('application_connector');
  734.                         $connector $this->applicationConnector;
  735.                         $connector->resetConnection(
  736.                             'default',
  737.                             $gocDbName,
  738.                             $gocDbUser,
  739.                             $gocDbPass,
  740.                             $gocDbHost,
  741.                             $reset true);
  742.                     }
  743.                 }
  744.             } else {
  745.                 // Seriously !! How did this person get this url. Track the pc if possible.
  746.                 $url $this->router->generate('user_login');
  747.                 $event->setController(function () use ($url) {
  748.                     return new RedirectResponse($url);
  749.                 });
  750.             }
  751.         }
  752.         //dashboard for diff aspects
  753.         if ($event->getRequest()->attributes->get('_route') == 'dashboard') {
  754.             $systemType '_ERP';//default
  755.             $systemType $this->container->hasParameter('system_type') ? $this->container->getParameter('system_type') : '_ERP_';
  756.             if ($systemType == '_ERP_') {
  757.                 //do nothing its default to dashboard index
  758.             } else if ($systemType == '_BUDDYBEE_') {
  759.                 $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\Buddybee\Controller\BuddybeePublicController:ConsultancyHomePageAction');
  760.                 $event->setController($this->resolver->getController($request));
  761.             } else if ($systemType == '_CENTRAL_') {
  762.                 $event->getRequest()->attributes->set('_controller''ApplicationBundle\Modules\HoneybeeWeb\Controller\HoneybeeWebPublicController:CentralHomePageAction');
  763.                 $event->setController($this->resolver->getController($request));
  764.             }
  765. //            $event->setController(function() use ($url) {
  766. //                return new RedirectResponse($url);
  767. //            });
  768. //            $event->setController((\ApplicationBundle\Controller\BuddybeePublicController())->ConsultancyHomePageAction() );
  769.         }
  770.     }
  771.     public function onKernelResponse(FilterResponseEvent $event)
  772.     {
  773.         $session $this->session;
  774.         $request $event->getRequest();
  775.         $response $event->getResponse();
  776.         //temp debug
  777.         $em $this->em;
  778.         $currRoute $request->attributes->get('_route');
  779. //        if ($currRoute != "update_database_schema")
  780. //            MiscActions::encryptTrans($em, '_ALL_', 0);
  781.         if (
  782.             ($request->request->has('returnJson') || $request->request->has('remoteVerify')) &&
  783.             $request->request->has('token') &&
  784.             !in_array($currRoute, [
  785.                 'select_data_ajax',
  786.                 'select_data_api',
  787.                 'select_data_ajax_public',
  788.             ])
  789.         ) {
  790.             $currDate = new \DateTime();
  791.             $to_write '';
  792.             $to_write .= "\nToken--" $request->request->get('token''NONE') . '  : ' $currDate->format('F d Y H:i:s');
  793.             $to_write .= "\nResponse:\n
  794.             ";
  795.             if (is_string($response->getContent()))
  796.                 $to_write .= $response->getContent();
  797.             else
  798.                 $to_write .= json_encode($response->getContent());
  799. //            System::log_it($this->container->getParameter('kernel.root_dir'), $to_write, $currRoute, 1);
  800.         }
  801.         if ($session->has('remoteVerified')) {
  802.             $lifetime 86400// 1 day
  803. //            $response->headers->setCookie(Cookie::create('PHPSESSID', $event->getRequest()->cookies->get('PHPSESSID'),time()+$lifetime));
  804.             $response->headers->set('Access-Control-Allow-Origin'$event->getRequest()->headers->get('origin'));
  805.             $response->headers->set('Access-Control-Allow-Credentials''true');
  806. //            $response->headers->setCookie(Cookie::create('PIKAMASTER', $event->getRequest()->cookies->get('PHPSESSID'),time()+$lifetime));
  807.         } else {
  808.             // create a hash and set it as a response header
  809. //        $hash = sha1($response->getContent().$token);
  810. //            $response->headers->set('Access-Control-Allow-Origin', '*');
  811. //            $response->headers->set('Access-Control-Allow-Credentials', 'true');
  812.             $response->headers->set('Access-Control-Allow-Origin'$event->getRequest()->headers->get('origin'));
  813.             $response->headers->set('Access-Control-Allow-Credentials''true');
  814. //            $response->headers->setCookie(Cookie::create('honeybeeCAuthId', $session->get(UserConstants::USER_ID)));
  815. //            $response->headers->setCookie(Cookie::create('honeybeeCAuthId2', $event->getRequest()->cookies->get('PHPSESSID')));
  816.         }
  817. //        if($session->has(UserConstants::USER_ID)) {
  818. //            if ($session->get(UserConstants::USER_ID) == '' || $session->get(UserConstants::USER_ID) == '') {
  819. //                $response->headers->setCookie(Cookie::create('USRCKIE', ''));
  820. //                $response->headers->setCookie(Cookie::create('REMEMBERME', ''));
  821. //                $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', ''));
  822. //            }
  823. //        }
  824. //        else
  825. //        {
  826. //            $response->headers->setCookie(Cookie::create('USRCKIE', ''));
  827. //            $response->headers->setCookie(Cookie::create('REMEMBERME', ''));
  828. //            $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE', ''));
  829. //        }
  830.         if ($session->has('CLEARLOGIN')) {
  831.             if ($session->get('CLEARLOGIN') == 1) {
  832.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  833.                     $response->headers->setCookie(Cookie::create('USRCKIE'''));
  834.                     $response->headers->setCookie(Cookie::create('REMEMBERME'''));
  835.                     $response->headers->setCookie(Cookie::create('CLEARLOGINCOOKIE'''));
  836.                 } else {
  837.                     $response->headers->setCookie(new Cookie('USRCKIE'''));
  838.                     $response->headers->setCookie(new Cookie('REMEMBERME'''));
  839.                     $response->headers->setCookie(new Cookie('CLEARLOGINCOOKIE'''));
  840.                 }
  841.             }
  842.             $session->set('CLEARLOGIN'0);
  843.         } else {
  844.         }
  845.         if ($session->has('REMEMBERME')) {
  846.             if ($session->get('REMEMBERME') == 1) {
  847.                 $lifetime 86400// 1 day
  848.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  849.                     $response->headers->setCookie(Cookie::create('USRCKIE'json_encode(array(
  850.                             'uid' => $session->get(UserConstants::USER_ID),
  851.                             'ut' => $session->get(UserConstants::USER_TYPE),
  852.                             'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  853.                             'gocId' => $session->get(UserConstants::USER_GOC_ID),
  854.                         )
  855.                     ), time() + $lifetime
  856.                     )
  857.                     );
  858.                     $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''PIKA'));
  859.                 } else {
  860.                     $response->headers->setCookie(new Cookie('USRCKIE'json_encode(array(
  861.                                 'uid' => $session->get(UserConstants::USER_ID),
  862.                                 'ut' => $session->get(UserConstants::USER_TYPE),
  863.                                 'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  864.                                 'gocId' => $session->get(UserConstants::USER_GOC_ID),
  865.                             )
  866.                         ), time() + $lifetime
  867.                         )
  868.                     );
  869.                     $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''PIKA'));
  870.                 }
  871.             } else {
  872.                 if (version_compare(PHP_VERSION'7.0.0''>=')) {
  873.                     $response->headers->setCookie(Cookie::create('USRCKIE'json_encode(array(
  874.                                 'uid' => $session->get(UserConstants::USER_ID),
  875.                                 'ut' => $session->get(UserConstants::USER_TYPE),
  876.                                 'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  877.                                 'gocId' => $session->get(UserConstants::USER_GOC_ID),
  878.                             )
  879.                         )
  880.                     )
  881.                     );
  882.                     $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''MASTER'));
  883.                 } else {
  884.                     $response->headers->setCookie(new Cookie('USRCKIE'json_encode(array(
  885.                                     'uid' => $session->get(UserConstants::USER_ID),
  886.                                     'ut' => $session->get(UserConstants::USER_TYPE),
  887.                                     'companyId' => $session->get(UserConstants::USER_COMPANY_ID),
  888.                                     'gocId' => $session->get(UserConstants::USER_GOC_ID),
  889.                                 )
  890.                             )
  891.                         )
  892.                     );
  893.                     $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''MASTER'));
  894.                 }
  895.             }
  896.         } else {
  897.             if (version_compare(PHP_VERSION'7.0.0''>='))
  898.                 $response->headers->setCookie(Cookie::create('REMEMBERMEACTIVATED''CHU'));
  899.             else
  900.                 $response->headers->setCookie(new Cookie('REMEMBERMEACTIVATED''CHU'));
  901.         }
  902.     }
  903. }