Ejemplo n.º 1
0
 public function checkOAuthAccess($errorObject)
 {
     require_once "include/SugarOAuthServer.php";
     try {
         $oauth = new SugarOAuthServer();
         $token = $oauth->authorizedToken();
         if (empty($token) || empty($token->assigned_user_id)) {
             return false;
         }
     } catch (OAuthException $e) {
         $GLOBALS['log']->debug("OAUTH Exception: {$e}");
         $errorObject->set_error('invalid_login');
         $this->setFaultObject($errorObject);
         return false;
     } catch (Zend_Oauth_Exception $e) {
         $GLOBALS['log']->debug("Zend_Oauth_Exception: {$e}");
         $errorObject->set_error('invalid_login');
         $this->setFaultObject($errorObject);
         return false;
     }
     $user = BeanFactory::getBean('Users', $token->assigned_user_id);
     if (empty($user->id)) {
         return false;
     }
     global $current_user;
     $current_user = $user;
     ini_set("session.use_cookies", 0);
     // disable cookies to prevent session ID from going out
     session_start();
     session_regenerate_id();
     $_SESSION['oauth'] = $oauth->authorization();
     $_SESSION['avail_modules'] = $this->get_user_module_list($user);
     // TODO: handle role
     // handle session
     $_SESSION['is_valid_session'] = true;
     $_SESSION['ip_address'] = query_client_ip();
     $_SESSION['user_id'] = $current_user->id;
     $_SESSION['type'] = 'user';
     $_SESSION['authenticated_user_id'] = $current_user->id;
     return session_id();
 }