Inject Horde_Auth
authorMichael J. Rubinsky <mrubinsk@horde.org>
Fri, 22 Oct 2010 15:46:00 +0000 (11:46 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Fri, 22 Oct 2010 15:46:20 +0000 (11:46 -0400)
framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php
framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php
horde/rpc.php

index 31083e9..035c58f 100644 (file)
@@ -350,7 +350,9 @@ abstract class Horde_ActiveSync_Driver_Base
     }
 
     /**
-     * @TODO: This will replace the above two methods
+     * @TODO: This will replace the above two methods. (They are still called
+     * from the (unused/unsupported MoveItems and CreateFolder Requests).
+     *
      * @return Horde_ActiveSync_Connector_Importer
      */
     public function getImporter()
index 48c39f5..38e651b 100644 (file)
@@ -42,6 +42,11 @@ class Horde_ActiveSync_Driver_Horde extends Horde_ActiveSync_Driver_Base
 
     /**
      * Const'r
+     * <pre>
+     * Required params (in addition to the base class' requirements):
+     *   connector => Horde_ActiveSync_Driver_Horde_Connector_Registry object
+     *   auth      => Horde_Auth object
+     * </pre>
      *
      * @param array $params  Configuration parameters.
      *
@@ -53,23 +58,25 @@ class Horde_ActiveSync_Driver_Horde extends Horde_ActiveSync_Driver_Base
         if (empty($this->_params['connector'])) {
             throw new InvalidArgumentException('Missing required connector object.');
         }
+
+        if (empty($this->_params['auth'])) {
+            throw new InvalidArgumentException('Missing required Auth object');
+        }
+
         $this->_connector = $params['connector'];
     }
 
     /**
      * Authenticate to Horde
      *
-     * @TODO: Need to inject the auth handler (waiting for rpc.php refactor)
-     *
      * @see framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde_ActiveSync_Driver_Base#Logon($username, $domain, $password)
      */
     public function logon($username, $password, $domain = null)
     {
         $this->_logger->info('Horde_ActiveSync_Driver_Horde::logon attempt for: ' . $username);
         parent::logon($username, $password, $domain);
-        $auth = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Auth')->create();
 
-        return $auth->authenticate($username, array('password' => $password));
+        return $this->_auth->authenticate($username, array('password' => $password));
     }
 
     /**
@@ -609,7 +616,7 @@ class Horde_ActiveSync_Driver_Horde extends Horde_ActiveSync_Driver_Base
                 $stat = $this->_smartStatMessage($folderid, $id, false);
             }
             break;
-            
+
         default:
             $this->_endBuffer();
             return false;
index e397a05..9598cb3 100644 (file)
@@ -109,6 +109,7 @@ case 'ActiveSync':
         'connector' => new Horde_ActiveSync_Driver_Horde_Connector_Registry($params),
         'ping' => $conf['activesync']['ping'],
         'state_basic' => $stateMachine,
+        'auth' => $GLOBALS['injector']->getInstance('Horde_Core_Factory_Auth')->create();
     );
 
     if ($params['provisioning'] = $conf['activesync']['securitypolicies']['provisioning']) {