예제 #1
0
 /**
  * Lay thong tin user tu session (danh cho user da login hoac su dung remember me
  *
  */
 public function updateFromSession($registry)
 {
     $setting = $registry->setting;
     if ($registry->session->has('userLogin') && $registry->session->get('userLogin') > 0) {
         //New way
         $userid = (int) $registry->session->get('userLogin');
         $myCacher = new Cacher(self::cacheBuildKeystringDetail($userid));
         $userInfo = $myCacher->get();
         if (!$userInfo || $registry->request->query->has('live')) {
             $sql = 'SELECT * FROM lit_ac_user u
                     INNER JOIN lit_ac_user_profile up ON u.u_id = up.u_id
                     WHERE u.u_id = ?';
             $userInfo = $this->db->query($sql, array($userid))->fetch();
             $myCacher->set($userInfo, 3600);
         }
         $this->getDataByArray($userInfo);
     } elseif ($registry->request->cookies->has('myHashing') && strlen($registry->request->cookies->get('myHashing')) > 0) {
         $cookieRememberMeInfo = \Litpi\ViephpHashing::cookiehasingParser($registry->request->cookies->get('myHashing'));
         $myUserTmp = new self();
         $myUserTmp->getData($cookieRememberMeInfo['userid']);
         if (\Litpi\ViephpHashing::authenticateCookiehashing($cookieRememberMeInfo['shortPasswordString'], $myUserTmp->password)) {
             $registry->session->migrate();
             $this->copy($myUserTmp);
             ////////////////////////////////////////////////////////////////////////////////////
             //UPDATE LAST LOGIN TIME
             $sql = 'UPDATE ' . TABLE_PREFIX . 'ac_user_profile
                     SET up_datelastlogin = ?
                     WHERE u_id = ?
                     LIMIT 1';
             $this->db->query($sql, array(time(), $this->id));
             $registry->session->set('userLogin', $this->id);
             $registry->session->set('loginauto', 1);
         }
     }
 }