示例#1
0
 /**
  * Load a user by login token, stored as a setting
  */
 static function getByToken($token)
 {
     $config = self::getStaticService('config');
     $setting = \Db\Sql\Settings::getByKeyValue($config->settings->cookieToken, $token->getValue(), ['first' => TRUE]);
     if (!$setting || !valid($setting->object_id)) {
         return FALSE;
     }
     return \Db\Sql\Users::findFirst($setting->object_id);
 }
示例#2
0
 /**
  * Authorize a user's login token
  *
  * @return object | bool
  */
 public function authorizeToken()
 {
     $cookies = $this->getService('cookies');
     // read the cookie, check if the token belongs to a user
     if (!$cookies->has('token')) {
         return FALSE;
     }
     $token = $cookies->get('token');
     if (!valid($token->getValue(), STRING)) {
         return FALSE;
     }
     // try to get the user by token
     $user = \Db\Sql\Users::getByToken($token);
     if (!$user || !valid($user->id)) {
         return FALSE;
     }
     // save the session data
     $session = $this->getService('session');
     $session->set('user_id', $user->id);
     return $user;
 }
示例#3
0
 /**
  * Load a user internally.
  *
  * @param integer $userId
  */
 private function loadUser($userId)
 {
     $this->userObj = \Db\Sql\Users::findFirst($userId);
     $this->user = $this->userObj->toArray();
     $this->userId = $this->userObj->id;
 }