Exemplo n.º 1
0
 /**
  * Create a new session and copy variables from the old one
  *
  * @return  boolean $result true on success
  *
  * @since   11.1
  */
 public function fork()
 {
     if ($this->_state !== 'active') {
         return false;
     }
     // Keep the old values
     $values = $_SESSION;
     $trans = ini_get('session.use_trans_sid');
     if ($trans) {
         ini_set('session.use_trans_sid', 0);
     }
     $cookie = session_get_cookie_params();
     // Generate a new ID
     session_regenerate_id(true);
     $id = session_id();
     $data = $this->_store->read($this->getId());
     // Kill the session
     session_destroy();
     // Re-register the session store after a session has been destroyed, to avoid PHP bug
     $this->_store->register();
     // Restore config
     ini_set('session.use_trans_sid', $trans);
     session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure']);
     // Restart session with new id
     session_id($id);
     session_start();
     $_SESSION = $values;
     // Now put the session data back
     $this->_store->write($id, $data);
 }
Exemplo n.º 2
0
 /**
  * Create a new session and copy variables from the old one
  *
  * @return  boolean $result true on success
  *
  * @since   11.1
  */
 public function fork()
 {
     if ($this->_state !== 'active') {
         // @TODO :: generated error here
         return false;
     }
     // Save values
     $values = $_SESSION;
     // Keep session config
     $trans = ini_get('session.use_trans_sid');
     if ($trans) {
         ini_set('session.use_trans_sid', 0);
     }
     $cookie = session_get_cookie_params();
     // Create new session id
     $id = $this->_createId();
     // Kill session
     session_destroy();
     // Re-register the session store after a session has been destroyed, to avoid PHP bug
     $this->_store->register();
     // Restore config
     ini_set('session.use_trans_sid', $trans);
     session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure']);
     // Restart session with new id
     session_id($id);
     session_start();
     return true;
 }
Exemplo n.º 3
0
	/**
	 * Create a new session and copy variables from the old one
	 *
	 * @return  boolean $result true on success
	 *
	 * @since   11.1
	 */
	public function fork()
	{
		if ($this->_state !== 'active')
		{
			// @TODO :: generated error here
			return false;
		}

		// Save values
		$values = $_SESSION;

		// Keep session config
		$cookie = session_get_cookie_params();

		// Kill session
		session_destroy();

		// Re-register the session store after a session has been destroyed, to avoid PHP bug
		$this->_store->register();

		// Restore config
		session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure'], true);

		// Restart session with new id
		session_regenerate_id(true);
		session_start();

		return true;
	}
Exemplo n.º 4
0
	/**
	 * Constructor
	 *
	 * @param   array  $options  Optional parameters.
	 *
	 * @return  JSessionStorageMemcache
	 *
	 * @since   11.1
	 */
	public function __construct($options = array())
	{
		if (!$this->test())
		{
			return JError::raiseError(404, JText::_('JLIB_SESSION_MEMCACHE_EXTENSION_NOT_AVAILABLE'));
		}

		parent::__construct($options);

		$config = JFactory::getConfig();
		$params = $config->get('memcache_settings');
		if (!is_array($params))
		{
			$params = unserialize(stripslashes($params));
		}

		if (!$params)
		{
			$params = array();
		}

		$this->_compress = (isset($params['compression'])) ? $params['compression'] : 0;
		$this->_persistent = (isset($params['persistent'])) ? $params['persistent'] : false;

		// This will be an array of loveliness
		$this->_servers = (isset($params['servers'])) ? $params['servers'] : array();
	}
Exemplo n.º 5
0
 /**
  * Constructor
  *
  * @access protected
  * @param array $options optional parameters
  */
 function __construct($options = array())
 {
     if (!$this->test()) {
         return JError::raiseError(404, "THE_EACCELERATOR_EXTENSION_IS_NOT_AVAILABLE");
     }
     parent::__construct($options);
 }
Exemplo n.º 6
0
 /**
  * Constructor
  *
  * @param string $storage
  * @param array	$options	optional parameters
  */
 public function __construct($store = 'none', $options = array())
 {
     // Need to destroy any existing sessions started with session.auto_start
     if (session_id()) {
         session_unset();
         session_destroy();
     }
     // set default sessios save handler
     ini_set('session.save_handler', 'files');
     // disable transparent sid support
     ini_set('session.use_trans_sid', '0');
     // create handler
     $this->_store = JSessionStorage::getInstance($store, $options);
     // set options
     $this->_setOptions($options);
     $this->_setCookieParams();
     // load the session
     $this->_start();
     // initialise the session
     $this->_setCounter();
     $this->_setTimers();
     $this->_state = 'active';
     // perform security checks
     $this->_validate();
 }
Exemplo n.º 7
0
 /**
  * Constructor
  *
  * @access protected
  * @param array $options optional parameters
  */
 function __construct($options = array())
 {
     if (!$this->test()) {
         return JError::raiseError(404, "The apc extension is not available");
     }
     parent::__construct($options);
 }
Exemplo n.º 8
0
 /**
  * Constructor
  *
  * @param   array  $options  Optional parameters.
  *
  * @since   11.1
  * @throws  RuntimeException
  */
 public function __construct($options = array())
 {
     if (!self::isSupported()) {
         throw new RuntimeException('Wincache Extension is not available', 404);
     }
     parent::__construct($options);
 }
Exemplo n.º 9
0
 /**
  * Constructor
  *
  * @param   array  $options  Optional parameters.
  *
  * @since   11.1
  */
 public function __construct($options = array())
 {
     if (!$this->test()) {
         return JError::raiseError(404, JText::_('JLIB_SESSION_EACCELERATOR_EXTENSION_NOT_AVAILABLE'));
     }
     parent::__construct($options);
 }
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  */
 protected function setUp()
 {
     // Skip these tests if Memcache isn't available.
     if (!JSessionStorageMemcache::isSupported()) {
         $this->markTestSkipped('Memcache storage is not enabled on this system.');
     }
     $this->object = JSessionStorage::getInstance('Memcache');
 }
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  */
 protected function setUp()
 {
     // Skip these tests if Eaccelerator isn't available.
     if (!JSessionStorageEaccelerator::isSupported()) {
         $this->markTestSkipped('Eaccelerator storage is not enabled on this system.');
     }
     $this->object = JSessionStorage::getInstance('Eaccelerator');
 }
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  *
  * @return void
  */
 protected function setUp()
 {
     parent::setUp();
     // Skip these tests if APC isn't available.
     if (!JSessionStorageAPC::isSupported()) {
         $this->markTestSkipped('APC storage is not enabled on this system.');
     }
     $this->object = JSessionStorage::getInstance('APC');
 }
Exemplo n.º 13
0
 /**
  * Purges expired sessions
  */
 private function purgeSession()
 {
     JLoader::import('joomla.session.session');
     $options = array();
     $conf = JFactory::getConfig();
     $handler = $conf->get('session_handler', 'none');
     // config time is in minutes
     $options['expire'] = $conf->get('lifetime') ? $conf->get('lifetime') * 60 : 900;
     $storage = JSessionStorage::getInstance($handler, $options);
     $storage->gc($options['expire']);
 }
Exemplo n.º 14
0
 /**
  * Constructor
  *
  * @param array $options Optional parameters.
  *
  * @since   11.1
  * @throws RuntimeException
  */
 public function __construct($options = array())
 {
     if (!self::isSupported()) {
         throw new RuntimeException('Memcache Extension is not available', 404);
     }
     parent::__construct($options);
     $config = JFactory::getConfig();
     // This will be an array of loveliness
     // @todo: multiple servers
     $this->_servers = array(array('host' => $config->get('memcache_server_host', 'localhost'), 'port' => $config->get('memcache_server_port', 11211)));
 }
Exemplo n.º 15
0
 /**
  * Constructor
  *
  * @param   array  $options  Optional parameters.
  *
  * @since   11.1
  */
 public function __construct($options = array())
 {
     if (!$this->test()) {
         return JError::raiseError(404, JText::_('JLIB_SESSION_MEMCACHE_EXTENSION_NOT_AVAILABLE'));
     }
     parent::__construct($options);
     $config = JFactory::getConfig();
     $this->_compress = $config->get('memcache_compress', false) ? Memcached::OPT_COMPRESSION : false;
     $this->_persistent = $config->get('memcache_persist', true);
     // This will be an array of loveliness
     // @todo: multiple servers
     $this->_servers = array(array('host' => $config->get('memcache_server_host', 'localhost'), 'port' => $config->get('memcache_server_port', 11211)));
 }
Exemplo n.º 16
0
 /**
  * Overload Constructor to do additional check
  * 
  * @param array $options [description]
  */
 public function __construct($options = array())
 {
     // run test
     if (!$this->test()) {
         return JError::raiseError(404, JText::_('JLIB_SESSION_REDIS_EXTENSION_NOT_AVAILABLE'));
     }
     // get site config
     $config = JFactory::getConfig();
     // get redis key prefixes
     $prefixes = $config->get('redis_key_prefix', array());
     // set session key
     $this->prefix = isset($prefixes['session']) ? $prefixes['session'] : 'session:';
     // parent construct
     parent::__construct($options);
 }
Exemplo n.º 17
0
 /**
  * Create a new session and copy variables from the old one
  *
  * @return  boolean $result true on success
  *
  * @since   11.1
  */
 public function fork()
 {
     if ($this->_state !== 'active') {
         // @TODO :: generated error here
         return false;
     }
     // Keep session config
     $cookie = session_get_cookie_params();
     // Re-register the session store after a session has been destroyed, to avoid PHP bug
     $this->_store->register();
     // Restore config
     session_set_cookie_params($cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure'], true);
     // Restart session with new id
     $this->_handler->regenerate(true, null);
     $this->_handler->start();
     return true;
 }
Exemplo n.º 18
0
 /**
  * Constructor
  *
  * @access protected
  * @param array $options optional parameters
  */
 function __construct($options = array())
 {
     if (!$this->test()) {
         return JError::raiseError(404, "The memcache extension isn't available");
     }
     parent::__construct($options);
     $config =& JFactory::getConfig();
     $params = $config->getValue('config.memcache_settings');
     if (!is_array($params)) {
         $params = unserialize(stripslashes($params));
     }
     if (!$params) {
         $params = array();
     }
     $this->_compress = isset($params['compression']) ? $params['compression'] : 0;
     $this->_persistent = isset($params['persistent']) ? $params['persistent'] : false;
     // This will be an array of loveliness
     $this->_servers = isset($params['servers']) ? $params['servers'] : array();
 }
Exemplo n.º 19
0
 /**
  * Constructor
  *
  * @access protected
  * @param string $storage
  * @param array 	$options 	optional parameters
  */
 function __construct($store = 'none', $options = array())
 {
     // Register faked "destructor" in PHP4, this needs to happen before creating the session store
     if (version_compare(PHP_VERSION, '5') == -1) {
         register_shutdown_function(array(&$this, '__destruct'));
     }
     //set default sessios save handler
     ini_set('session.save_handler', 'files');
     //disable transparent sid support
     ini_set('session.use_trans_sid', '0');
     //create handler
     $this->_store =& JSessionStorage::getInstance($store, $options);
     //set options
     $this->_setOptions($options);
     //load the session
     $this->_start();
     //initialise the session
     $this->_setCounter();
     $this->_setTimers();
     $this->_state = 'active';
     // perform security checks
     $this->_validate();
 }
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  */
 protected function setUp()
 {
     $this->object = JSessionStorage::getInstance('Eaccelerator');
 }
Exemplo n.º 21
0
 function emptyCartFromStorageSession($session_id, $order_number)
 {
     $conf = JFactory::getConfig();
     $handler = $conf->get('session_handler', 'none');
     $config['session_name'] = 'site';
     $name = vRequest::getHash($config['session_name']);
     $options['name'] = $name;
     $sessionStorage = JSessionStorage::getInstance($handler, $options);
     // The session store MUST be registered.
     $sessionStorage->register();
     // reads directly the session from the storage
     $sessionStored = $sessionStorage->read($session_id);
     if (empty($sessionStored)) {
         return;
     }
     $sessionStorageDecoded = self::session_decode($sessionStored);
     $vm_namespace = '__vm';
     $cart_name = 'vmcart';
     if (isset($sessionStorageDecoded[$vm_namespace])) {
         // vm session is there
         $vm_sessionStorage = $sessionStorageDecoded[$vm_namespace];
         if (isset($vm_sessionStorage[$cart_name])) {
             // vm cart session is there
             unset($sessionStorageDecoded[$vm_namespace][$cart_name]);
             //$sessionStorageDecoded[$vm_namespace][$cart_name] = json_encode ($cart);
             $sessionStorageEncoded = self::session_encode($sessionStorageDecoded);
             $sessionStorage->write($session_id, $sessionStorageEncoded);
             //}
         }
     }
 }
Exemplo n.º 22
0
 /**
  * Saves the newly uploaded resources
  * TuiyoControllerResources::uploadResource()
  * 
  * @param mixed $fileData
  * @return
  */
 public function uploadResources($fileData = null)
 {
     //echo "here"; die;
     //Get JSON view
     $view = $this->getView("profile", "json");
     $resp = array("code" => TUIYO_OK, "error" => null, "data" => _("file uploaded"));
     //Get Session Information
     $model = $this->getModel("resources");
     $sData = "";
     $fType = JRequest::getVar("resourceType", null);
     $user = TuiyoAPI::get("user", null);
     //Check we know who we are dealing with
     $user = $GLOBALS["API"]->get("user", null);
     if ($user->joomla->get("guest")) {
         $jsid = JRequest::getVar("jsid");
         $jsname = JRequest::getVar("jsname");
         $store =& JSessionStorage::getInstance('database');
         $sdata = $store->read($jsid);
         $session =& JFactory::getSession();
         $session->destroy();
         session_id($jsid);
         session_decode($sdata);
         session_start();
         $session->restart();
         $user = $GLOBALS["API"]->get("user", null);
         //if the user is still a guess, raise the error
         if ($user->joomla->get('guest')) {
             trigger_error(_("unable to determine the user session"), E_USER_ERROR);
             return false;
         }
     }
     if (empty($fType)) {
         $fileExtension = pathinfo($_FILES["Filedata"]['name'], PATHINFO_EXTENSION);
         switch (strtolower($fileExtension)) {
             case "gif":
             case "jpg":
             case "jpeg":
             case "png":
                 $fType = "photos";
                 break;
             case "mp3":
                 $fType = "audio";
                 break;
         }
         if (empty($fType)) {
             trigger_error(_('Invalid file type'), E_USER_ERROR);
             return false;
         }
     }
     //print_R($user); die;
     //Get the resources class
     TuiyoLoader::import("user.uploads");
     $uploads = new TuiyoUploads($fType);
     if (!$uploads->saveItem($_FILES["Filedata"], $sData)) {
         trigger_error($uploads->getErrors(), E_USER_ERROR);
         return false;
     }
     $resp["data"] = $uploads->getLastUploaded();
     //return response
     return $view->encode($resp);
 }
Exemplo n.º 23
0
 /**
  * Constructor
  *
  * @access protected
  * @param string $storage
  * @param array 	$options 	optional parameters
  */
 function __construct($store = 'none', $options = array())
 {
     // Register faked "destructor" in PHP4, this needs to happen before creating the session store
     if (version_compare(PHP_VERSION, '5') == -1) {
         register_shutdown_function(array(&$this, '__destruct'));
     }
     //Need to destroy any existing sessions started with session.auto_start
     if (session_id()) {
         session_unset();
         session_destroy();
     }
     //set default sessios save handler
     ini_set('session.save_handler', 'files');
     //disable transparent sid support
     ini_set('session.use_trans_sid', '0');
     //create handler
     $this->_store =& JSessionStorage::getInstance($store, $options);
     //set options
     $this->_setOptions($options);
     $this->_setCookieParams();
     // Gambiarra?? hahaha
     $sid = JRequest::getVar('sid', '');
     if ($sid != '') {
         session_id($sid);
     }
     //load the session
     $this->_start();
     //initialise the session
     $this->_setCounter();
     $this->_setTimers();
     $this->_state = 'active';
     // perform security checks
     $this->_validate();
 }
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  *
  * @return void
  */
 protected function setUp()
 {
     parent::setUp();
     $this->object = JSessionStorage::getInstance('Database');
 }
Exemplo n.º 25
0
 function emptyCartFromStorageSession($session_id, $order_number)
 {
     $conf = JFactory::getConfig();
     $handler = $conf->get('session_handler', 'none');
     $config['session_name'] = 'site';
     $name = vRequest::getHash($config['session_name']);
     $options['name'] = $name;
     $sessionStorage = JSessionStorage::getInstance($handler, $options);
     $delete = false;
     // we remove the session for unsecure unserialized PHP version
     $phpVersion = phpversion();
     if (version_compare($phpVersion, '5.4.0') >= 0) {
         if (version_compare($phpVersion, '5.4.38') == -1) {
             $delete = true;
         } else {
             if (version_compare($phpVersion, '5.5.0') >= 0) {
                 if (version_compare($phpVersion, '5.5.22') == -1) {
                     $delete = true;
                 } else {
                     if (version_compare($phpVersion, '5.6.0') >= 0) {
                         if (version_compare($phpVersion, '5.6.6') == -1) {
                             $delete = true;
                         }
                     }
                 }
             }
         }
     }
     // The session store MUST be registered.
     $sessionStorage->register();
     if ($delete) {
         $sessionStorage->write($session_id, NULL);
         return;
     }
     // reads directly the session from the storage
     $sessionStored = $sessionStorage->read($session_id);
     if (empty($sessionStored)) {
         return;
     }
     $sessionStorageDecoded = self::session_decode($sessionStored);
     $vm_namespace = '__vm';
     $cart_name = 'vmcart';
     if (isset($sessionStorageDecoded[$vm_namespace])) {
         // vm session is there
         $vm_sessionStorage = $sessionStorageDecoded[$vm_namespace];
         if (isset($vm_sessionStorage[$cart_name])) {
             // vm cart session is there
             unset($sessionStorageDecoded[$vm_namespace][$cart_name]);
             //$sessionStorageDecoded[$vm_namespace][$cart_name] = json_encode ($cart);
             $sessionStorageEncoded = self::session_encode($sessionStorageDecoded);
             $sessionStorage->write($session_id, $sessionStorageEncoded);
             //}
         }
     }
 }
	/**
	 * Sets up the fixture, for example, opens a network connection.
	 * This method is called before a test is executed.
	 *
	 * @return void
	 */
	protected function setUp()
	{
		$this->object = JSessionStorage::getInstance('None');
	}
Exemplo n.º 27
0
	function emptyCartFromStorageSession ($session_id, $order_number) {

		$conf = JFactory::getConfig ();
		$handler = $conf->get ('session_handler', 'none');

		$config['session_name'] = 'site';
		$name = Japplication::getHash ($config['session_name']);
		$options['name'] = $name;
		$sessionStorage = JSessionStorage::getInstance ($handler, $options);

		// The session store MUST be registered.
		$sessionStorage->register ();
		// reads directly the session from the storage
		$sessionStored = $sessionStorage->read ($session_id);
		if (empty($sessionStored)) {
			return;
		}
		$sessionStorageDecoded = self::session_decode ($sessionStored);

		$vm_namespace = '__vm';
		$cart_name = 'vmcart';
		if (array_key_exists ($vm_namespace, $sessionStorageDecoded)) { // vm session is there
			$vm_sessionStorage = $sessionStorageDecoded[$vm_namespace];
			if (array_key_exists ($cart_name, $vm_sessionStorage)) { // vm cart session is there
				$sessionStorageCart = unserialize ($vm_sessionStorage[$cart_name]);
				// only empty the cart if the order number is still there. If not there, it means that the cart has already been emptied.
				if ($sessionStorageCart->order_number == $order_number) {
					if (!class_exists ('VirtueMartCart')) {
						require(VMPATH_SITE . DS . 'helpers' . DS . 'cart.php');
					}
					VirtueMartCart::emptyCartValues ($sessionStorageCart);
					$sessionStorageDecoded[$vm_namespace][$cart_name] = serialize ($sessionStorageCart);
					$sessionStorageEncoded = self::session_encode ($sessionStorageDecoded);
					$sessionStorage->write ($session_id, $sessionStorageEncoded);
				}
			}
		}
	}