Fix various issues with new SessionHandler code
authorMichael J. Rubinsky <mrubinsk@horde.org>
Sun, 10 Oct 2010 16:18:38 +0000 (12:18 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Sun, 10 Oct 2010 16:18:38 +0000 (12:18 -0400)
Classes extend Horde_SessionHandler, not Horde_SessionHandler_Base
Need to add the factory binder for Horde_SessionHandler
Request a Horde_SessionHandler, not a Horde_Core_Factory_* when requesting/creating the sessionhandler

framework/Core/lib/Horde/Core/Factory/SessionHandler.php
framework/Core/lib/Horde/Registry.php
framework/Core/lib/Horde/Session.php
framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php
framework/SessionHandler/lib/Horde/SessionHandler/External.php
framework/SessionHandler/lib/Horde/SessionHandler/Memcache.php
framework/SessionHandler/lib/Horde/SessionHandler/Sql.php
framework/SessionHandler/lib/Horde/SessionHandler/Stack.php

index 79b9b1b..2511c4e 100644 (file)
@@ -81,44 +81,4 @@ class Horde_Core_Factory_SessionHandler
         throw new Horde_SessionHandler_Exception('Driver not found: ' . $driver);
     }
 
-    /**
-     * Reads session data to determine if it contains Horde authentication
-     * credentials.
-     *
-     * @param string $session_data  The session data.
-     *
-     * @return array  An array of the user's sesion information if
-     *                authenticated or false.  The following information is
-     *                returned: userid, timestamp, remoteAddr, browser, apps.
-     */
-    public function readSessionData($session_data)
-    {
-        if (empty($session_data) ||
-            (($pos = strpos($session_data, 'horde_auth|')) === false)) {
-            return false;
-        }
-
-        $pos += 11;
-        $endpos = $pos + 1;
-
-        while ($endpos !== false) {
-            $endpos = strpos($session_data, '|', $endpos);
-            $data = @unserialize(substr($session_data, $pos, $endpos));
-            if (is_array($data)) {
-                return empty($data)
-                    ? false
-                    : array(
-                        'apps' => empty($data['app']) ? array('horde') : array_keys($data['app']),
-                        'browser' => $data['browser'],
-                        'remoteAddr' => $data['remoteAddr'],
-                        'timestamp' => $data['timestamp'],
-                        'userid' => $data['userId']
-                    );
-            }
-            ++$endpos;
-        }
-
-        return false;
-    }
-
 }
index 67e4072..644c89d 100644 (file)
@@ -291,6 +291,7 @@ class Horde_Registry
             'Horde_Routes_Mapper' => 'Horde_Core_Factory_Mapper',
             'Horde_Secret' => 'Horde_Core_Factory_Secret',
             'Horde_Service_Twitter' => 'Horde_Core_Factory_Twitter',
+            'Horde_SessionHandler' => 'Horde_Core_Factory_SessionHandler',
             'Horde_Template' => 'Horde_Core_Factory_Template',
             'Horde_Token' => 'Horde_Core_Factory_Token',
             'Horde_View' => 'Horde_Core_Factory_View',
index b32b46b..25558f2 100644 (file)
@@ -83,7 +83,7 @@ class Horde_Session implements ArrayAccess
 
         /* We want to create an instance here, not get, since we may be
          * destroying the previous instances in the page. */
-        $this->sessionHandler = $GLOBALS['injector']->createInstance('Horde_Core_Factory_SessionHandler');
+        $this->sessionHandler = $GLOBALS['injector']->createInstance('Horde_SessionHandler');
 
         if ($start) {
             session_start();
index 42a1316..72a77d0 100644 (file)
@@ -13,7 +13,7 @@
  * @category Horde
  * @package  SessionHandler
  */
-class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Base
+class Horde_SessionHandler_Builtin extends Horde_SessionHandler
 {
     /**
      * Directory with session files.
index 8f4abe1..414e310 100644 (file)
@@ -12,7 +12,7 @@
  * @category Horde
  * @package  SessionHandler
  */
-class Horde_SessionHandler_External extends Horde_SessionHandler_Base
+class Horde_SessionHandler_External extends Horde_SessionHandler
 {
     /**
      * Constructor.
index 59661fa..34344b7 100644 (file)
@@ -12,7 +12,7 @@
  * @category Horde
  * @package  SessionHandler
  */
-class Horde_SessionHandler_Memcache extends Horde_SessionHandler_Base
+class Horde_SessionHandler_Memcache extends Horde_SessionHandler
 {
     /**
      * Memcache object.
index d3cbc92..bf8839b 100644 (file)
@@ -14,7 +14,7 @@
  * @category Horde
  * @package  SessionHandler
  */
-class Horde_SessionHandler_Sql extends Horde_SessionHandler_Base
+class Horde_SessionHandler_Sql extends Horde_SessionHandler
 {
     /**
      * Handle for the current database connection.
index 7e40187..0050257 100644 (file)
@@ -14,7 +14,7 @@
  * @category Horde
  * @package  SessionHandler
  */
-class Horde_SessionHandler_Stack extends Horde_SessionHandler_Base
+class Horde_SessionHandler_Stack extends Horde_SessionHandler
 {
     /**
      * Stack of sessionhandlers.