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(); }