public function defaultAction()
 {
     $model_and_view = new __ModelAndView('logon');
     $request = __Client::getInstance()->getRequest();
     //Check credentials:
     $login = $request->getParameter('login');
     $password = $request->getParameter('password');
     $user_identity = new __UsernameIdentity();
     $user_identity->setUsername($login);
     $credentials = new __PasswordCredentials();
     $credentials->setPassword($password);
     try {
         $result_logon = __AuthenticationManager::getInstance()->logon($user_identity, $credentials);
     } catch (__SecurityException $e) {
         $result_logon = false;
         $error_message = $e->getMessage();
     }
     if ($result_logon == false) {
         //Now will include smarty as ORS template engine:
         if ($error_message == '') {
             $error_message = __ResourceManager::getInstance()->getResource('ERR_LOGON_ERROR')->getValue();
         }
         $model_and_view->errorMsg = $error_message;
     } else {
         if ($request->getParameter('destination_page')) {
             $model_and_view->redirectPage = $request->GetParameter('destination_page');
         } else {
             $model_and_view->redirectPage = __UriFactory::getInstance()->createUri()->setActionCode('index')->addParameter(__ApplicationContext::getInstance()->getPropertyContent('REQUEST_LION_ADMIN_AREA'), 1)->getUrl();
         }
     }
     //Return the view code to use:
     return $model_and_view;
 }
 public function &createResponse($request_type = null)
 {
     $return_value = null;
     if ($request_type == null) {
         $request_type = __Client::getInstance()->getRequestType();
     }
     switch ($request_type) {
         case REQUEST_TYPE_COMMAND_LINE:
             $response_class = __CurrentContext::getInstance()->getPropertyContent('COMMAND_LINE_RESPONSE_CLASS');
             break;
         case REQUEST_TYPE_XMLHTTP:
             $response_class = __CurrentContext::getInstance()->getPropertyContent('XML_HTTP_RESPONSE_CLASS');
             break;
         default:
             $response_class = __CurrentContext::getInstance()->getPropertyContent('HTTP_RESPONSE_CLASS');
             break;
     }
     if (class_exists($response_class)) {
         $return_value = new $response_class();
     }
     if (!$return_value instanceof __IResponse) {
         __ExceptionFactory::getInstance()->createException('Wrong response class: ' . $response_class . '. The response class must implement the __IResponse');
     }
     return $return_value;
 }
 public function getErrorPrinter()
 {
     $error_printer_class = null;
     if (__Lion::getInstance()->getStatus() == __Lion::STATUS_RUNNING) {
         $request_type = __Client::getInstance()->getRequestType();
         switch ($request_type) {
             case REQUEST_TYPE_XMLHTTP:
                 $error_printer_class = __CurrentContext::getInstance()->getPropertyContent('XMLHTTP_ERROR_PRINTER_CLASS');
                 break;
             case REQUEST_TYPE_COMMAND_LINE:
                 $error_printer_class = __CurrentContext::getInstance()->getPropertyContent('COMMAND_LINE_ERROR_PRINTER_CLASS');
                 break;
             case REQUEST_TYPE_HTTP:
             default:
                 $error_printer_class = __CurrentContext::getInstance()->getPropertyContent('HTTP_ERROR_PRINTER_CLASS');
                 break;
         }
     }
     if ($error_printer_class == null) {
         $error_printer_class = $this->_default_error_printer_class;
         $error_printer = new $error_printer_class();
     } else {
         $error_printer = new $error_printer_class();
         if (!$error_printer instanceof __IErrorPrinter) {
             $error_printer = $this->getDefaultErrorPrinter();
         }
     }
     return $error_printer;
 }
 public function getRequestType()
 {
     if ($this->_request != null) {
         return $this->_request->getRequestType();
     } else {
         return __Client::getInstance()->getRequestType();
     }
 }
 /**
  * This method return a singleton instance of __Client
  *
  * @return __Client A singleton reference to the __Client
  */
 public static function &getInstance()
 {
     if (self::$_instance == null) {
         // Use "Lazy initialization"
         self::$_instance = new __Client();
     }
     return self::$_instance;
 }
 public final function __construct()
 {
     $cache_enabled = __Lion::getInstance()->getRuntimeDirectives()->getDirective('CACHE_ENABLED');
     if (class_exists('__Client') && __Client::getInstance()->getRequestType() == REQUEST_TYPE_COMMAND_LINE) {
         $cache_enabled = false;
     }
     $this->setEnabled($cache_enabled);
 }
 public static function createLocaleNegociator()
 {
     $request_type = __Client::getInstance()->getRequestType();
     switch ($request_type) {
         case REQUEST_TYPE_HTTP:
         case REQUEST_TYPE_XMLHTTP:
             $return_value = new __HttpLocaleNegociator();
             break;
         case REQUEST_TYPE_COMMAND_LINE:
             $return_value = new __CommandLineLocaleNegociator();
             break;
     }
     return $return_value;
 }
 public function defaultAction()
 {
     $model_manager = __ModelManager::instance();
     //Create a __CriteriaParameters instance to capture criteria parameters from the user request:
     $criteria_parameters = new __CriteriaParameters();
     $criteria_parameters->addValidSubmitCode(__CodeGenerator::getSubmitCode('resources', 'search_resources'));
     $criteria_parameters->addValidSubmitCode(__CodeGenerator::getSubmitCode('resources_table'));
     //Add the correspondent metadata:
     $criteria_parameters->addParameterMetadata('key', array('alias' => 'resource_key'));
     $criteria_parameters->addParametersValues(__Client::getInstance()->getRequest());
     //We will request 20 + 1 in order to know if there are more than 20 rows or not:
     $criteria_parameters->setPageSize(20);
     //Now get the requested resources list:
     $resources = $model_manager->getResources($criteria_parameters);
     //Finally will add all model information to the __ModelAndView instance to be returned
     $model_and_view = new __ModelAndView('resources');
     $model_and_view->resources = $resources;
     return $model_and_view;
 }
 private static function _validateRewriteEngine()
 {
     $rewrite_engine_working = false;
     //by default
     if (__Client::getInstance()->getRequestType() != REQUEST_TYPE_COMMAND_LINE) {
         $test_url = __UriFactory::getInstance()->createUri()->setRoute('testResponse')->getUrl();
         $test_url = __UrlHelper::resolveUrl($test_url, 'http://' . $_SERVER['SERVER_NAME']);
         if ($stream = @fopen($test_url, 'r')) {
             // print all the page starting at the offset 10
             $test_content = stream_get_contents($stream);
             fclose($stream);
             if ($test_content == 'OK') {
                 $rewrite_engine_working = true;
             }
         }
         if ($rewrite_engine_working == false) {
             throw __ExceptionFactory::getInstance()->createException('Either mod rewrite is not enabled in your server or is not well configured.');
         }
     }
 }
 /**
  * Forward the web flow to the given uri.
  * This method is similar to redirect, but performs the redirection internally (without http redirection codes)
  *
  * @param __Uri|string the uri (or an string representing the url) to redirect to
  * @param __IRequest &$request The request instance to use in the forward
  * 
  */
 public function forward($uri, __IRequest &$request = null)
 {
     if (is_string($uri)) {
         $uri = __UriFactory::getInstance()->createUri($uri);
     } else {
         if (!$uri instanceof __Uri) {
             throw __ExceptionFactory::getInstance()->createException('Unexpected type for uri parameter: ' . get_class($uri));
         }
     }
     if ($request == null) {
         $request = __RequestFactory::getInstance()->createRequest();
     }
     $request->setUri($uri);
     $request->setRequestMethod(REQMETHOD_ALL);
     $response = __Client::getInstance()->getResponse();
     $response->clear();
     //clear the response
     $this->dispatch($request, $response);
     //dispatch the request
     $response->flush();
     //flush the response
     exit;
 }
Exemple #11
0
 /**
  * This method adds a new __Locale to the internal collection of locales, and set it as the default locale
  *
  * @param Locale The locale to set
  * @return boolean true if the locale has been setted successfully, else false
  */
 public function setLocale(__Locale &$locale)
 {
     $this->_locale =& $locale;
     if (__Client::getInstance()->getRequestType() == REQUEST_TYPE_HTTP) {
         $app_name = md5(__ApplicationContext::getInstance()->getPropertyContent('APP_NAME'));
         $auth_cookie = new __Cookie('__LOCALE__' . $app_name, $locale->getCode(), session_cache_expire() * 60, '/');
         $response = __FrontController::getInstance()->getResponse();
         $response->addCookie($auth_cookie);
     }
 }