/**
  * @param type $deliveryResultIdentifier lis_result_sourcedid
  * @param type $test ignored
  * @param taoResultServer_models_classes_Variable $testVariable
  * @param type $callIdTest ignored
  */
 public function storeTestVariable($deliveryResultIdentifier, $test, taoResultServer_models_classes_Variable $testVariable, $callIdTest)
 {
     if (get_class($testVariable) == "taoResultServer_models_classes_OutcomeVariable") {
         common_Logger::i("Outcome submission VariableId. (" . $testVariable->getIdentifier() . ") Result Identifier (" . $deliveryResultIdentifier . ")Service URL (" . $this->serviceUrl . ")");
         $variableIdentifier = $testVariable->getIdentifier();
         if ($variableIdentifier == LTI_OUTCOME_VARIABLE_IDENTIFIER) {
             $grade = (string) $testVariable->getValue();
             $message = taoLtiBasicOutcome_helpers_LtiBasicOutcome::buildXMLMessage($deliveryResultIdentifier, $grade, 'replaceResultRequest');
             //common_Logger::i("Preparing POX message for the outcome service :".$message."\n");
             $credentialResource = taoLti_models_classes_LtiService::singleton()->getCredential($this->consumerKey);
             //common_Logger::i("Credential for the consumerKey :". $credentialResource->getUri()."\n");
             $credentials = new tao_models_classes_oauth_Credentials($credentialResource);
             //$this->serviceUrl = "http://tao-dev/log.php";
             //Building POX raw http message
             $unSignedOutComeRequest = new common_http_Request($this->serviceUrl, 'POST', array());
             $unSignedOutComeRequest->setBody($message);
             $signingService = new tao_models_classes_oauth_Service();
             $signedRequest = $signingService->sign($unSignedOutComeRequest, $credentials, true);
             common_Logger::i("Request sent (Body)\n" . $signedRequest->getBody() . "\n");
             common_Logger::i("Request sent (Headers)\n" . serialize($signedRequest->getHeaders()) . "\n");
             common_Logger::i("Request sent (Headers)\n" . serialize($signedRequest->getParams()) . "\n");
             //Hack for moodle comaptibility, the header is ignored for the signature computation
             $signedRequest->setHeader("Content-Type", "application/xml");
             $response = $signedRequest->send();
             common_Logger::i("\nHTTP Code received: " . $response->httpCode . "\n");
             common_Logger::i("\nHTTP From: " . $response->effectiveUrl . "\n");
             common_Logger::i("\nHTTP Content received: " . $response->responseData . "\n");
             if ($response->httpCode != "200") {
                 throw new common_exception_Error("An HTTP level proble occured when sending the outcome to the service url");
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Entrypoint of every tool
  */
 public function launch()
 {
     try {
         taoLti_models_classes_LtiService::singleton()->startLtiSession(common_http_Request::currentRequest());
         // check if cookie has been set
         if (tao_models_classes_accessControl_AclProxy::hasAccess('verifyCookie', 'CookieUtils', 'taoLti')) {
             $this->redirect(_url('verifyCookie', 'CookieUtils', 'taoLti', array('session' => session_id(), 'redirect' => _url('run', null, null, $_GET))));
         } else {
             $this->returnError(__('You are not authorized to use this system'));
         }
     } catch (common_user_auth_AuthFailedException $e) {
         common_Logger::i($e->getMessage());
         $this->returnError(__('The LTI connection could not be established'), false);
     } catch (taoLti_models_classes_LtiException $e) {
         // In regard of the IMS LTI standard, we have to show a back button that refer to the
         // launch_presentation_return_url url param. So we have to retrieve this parameter before trying to start
         // the session
         $params = common_http_Request::currentRequest()->getParams();
         if (isset($params[taoLti_models_classes_LtiLaunchData::TOOL_CONSUMER_INSTANCE_NAME])) {
             $this->setData('consumerLabel', $params[taoLti_models_classes_LtiLaunchData::TOOL_CONSUMER_INSTANCE_NAME]);
         } elseif (isset($params[taoLti_models_classes_LtiLaunchData::TOOL_CONSUMER_INSTANCE_DESCRIPTION])) {
             $this->setData('consumerLabel', $params[taoLti_models_classes_LtiLaunchData::TOOL_CONSUMER_INSTANCE_DESCRIPTION]);
         }
         if (isset($params[taoLti_models_classes_LtiLaunchData::LAUNCH_PRESENTATION_RETURN_URL])) {
             $this->setData('returnUrl', $params[taoLti_models_classes_LtiLaunchData::LAUNCH_PRESENTATION_RETURN_URL]);
         }
         common_Logger::i($e->getMessage());
         $this->returnError(__('The LTI connection could not be established'), false);
     } catch (tao_models_classes_oauth_Exception $e) {
         common_Logger::i($e->getMessage());
         $this->returnError(__('The LTI connection could not be established'), false);
     }
 }
Exemplo n.º 3
0
 public function __construct()
 {
     parent::__construct();
     $authAdapter = new tao_models_classes_HttpBasicAuthAdapter(common_http_Request::currentRequest());
     try {
         $user = $authAdapter->authenticate();
         $session = new common_session_RestSession($user);
         \common_session_SessionManager::startSession($session);
     } catch (common_user_auth_AuthFailedException $e) {
         $this->requireLogin();
     }
     /*
     	    $this->headers = tao_helpers_Http::getHeaders();
     	    $this->files = tao_helpers_Http::getFiles();
     */
     if ($this->hasHeader("Accept")) {
         try {
             $this->responseEncoding = tao_helpers_Http::acceptHeader($this->acceptedMimeTypes, $this->getHeader("Accept"));
         } catch (common_exception_ClientException $e) {
             $this->returnFailure($e);
         }
     }
     if ($this->hasHeader("Accept-Language")) {
         try {
         } catch (common_exception_ClientException $e) {
             $this->returnFailure($e);
         }
     }
     header('Content-Type: ' . $this->responseEncoding);
     //check auth method requested
     /**/
 }
Exemplo n.º 4
0
 /**
  * @deprecated use \oat\tao\model\requiredAction\implementation\RequiredActionRedirectUrlPart instead
  *
  * Execute an action
  * @param array $params
  * @return mixed
  */
 public function execute(array $params = [])
 {
     $context = \Context::getInstance();
     $excludedRoutes = $this->getExcludedRoutes();
     $currentRoute = ['extension' => $context->getExtensionName(), 'module' => $context->getModuleName(), 'action' => $context->getActionName()];
     if (!in_array($currentRoute, $excludedRoutes)) {
         $currentUrl = \common_http_Request::currentRequest()->getUrl();
         $url = $this->url . (parse_url($this->url, PHP_URL_QUERY) ? '&' : '?') . 'return_url=' . urlencode($currentUrl);
         $flowController = new FlowController();
         $flowController->redirect($url);
     }
 }
Exemplo n.º 5
0
 /**
  *  Start the MVC Loop from the ClearFW
  *  @throws ActionEnforcingException in case of wrong module or action
  *  @throws tao_models_classes_UserException when a request try to acces a protected area
  */
 protected function mvc()
 {
     $re = \common_http_Request::currentRequest();
     $fc = new TaoFrontController();
     $fc->legacy($re);
 }
Exemplo n.º 6
0
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response)
 {
     $request->getUri();
     $pRequest = \common_http_Request::currentRequest();
     $this->legacy($pRequest, $response);
 }
Exemplo n.º 7
0
 private function getOauthRequest(common_http_Request $request)
 {
     $params = array();
     $params = array_merge($params, $request->getParams());
     //$params = array_merge($params, $request->getHeaders());
     common_Logger::d("OAuth Request created:" . $request->getUrl() . " using " . $request->getMethod());
     $oauthRequest = new OAuthRequest($request->getMethod(), $request->getUrl(), $params);
     return $oauthRequest;
 }
 /**
  * 
  * @param common_http_Request $request
  * @return taoLti_models_classes_LtiLaunchData
  */
 public static function fromRequest(common_http_Request $request)
 {
     $extra = self::getParametersFromUrl($request->getUrl());
     return new self($request->getParams(), $extra);
 }