/** * Run the controller * * @param common_http_Request $pRequest * @throws \ActionEnforcingException * @throws \Exception * @throws \common_exception_Error * @throws \common_ext_ExtensionException */ public function legacy(common_http_Request $pRequest) { $resolver = new Resolver($pRequest); // load the responsible extension $ext = common_ext_ExtensionsManager::singleton()->getExtensionById($resolver->getExtensionId()); \Context::getInstance()->setExtensionName($resolver->getExtensionId()); // load translations $uiLang = \common_session_SessionManager::getSession()->getInterfaceLanguage(); \tao_helpers_I18n::init($ext, $uiLang); //if the controller is a rest controller we try to authenticate the user $controllerClass = $resolver->getControllerClass(); if (is_subclass_of($controllerClass, \tao_actions_RestController::class)) { $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) { $data['success'] = false; $data['errorCode'] = '401'; $data['errorMsg'] = 'You are not authorized to access this functionality.'; $data['version'] = TAO_VERSION; header('HTTP/1.0 401 Unauthorized'); header('WWW-Authenticate: Basic realm="' . GENERIS_INSTANCE_NAME . '"'); echo json_encode($data); exit(0); } } try { $enforcer = new ActionEnforcer($resolver->getExtensionId(), $resolver->getControllerClass(), $resolver->getMethodName(), $pRequest->getParams()); $enforcer->execute(); } catch (InterruptedActionException $iE) { // Nothing to do here. } }
/** * (non-PHPdoc) * @see FrontController::loadModule() */ public function loadModule() { $resolver = new Resolver($this->getRequest()); // load the responsible extension common_ext_ExtensionsManager::singleton()->getExtensionById($resolver->getExtensionId()); \Context::getInstance()->setExtensionName($resolver->getExtensionId()); //if the controller is a rest controller we try to authenticate the user $controllerClass = $resolver->getControllerClass(); if (is_subclass_of($controllerClass, 'tao_actions_CommonRestModule')) { $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) { $class = new $controllerClass(); $class->requireLogin(); } } try { $enforcer = new ActionEnforcer($resolver->getExtensionId(), $resolver->getControllerClass(), $resolver->getMethodName(), $this->getRequest()->getParams()); $enforcer->execute(); } catch (InterruptedActionException $iE) { // Nothing to do here. } }
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 /**/ }