From d71315ed947816c00edd43b40fbd25abb209b8ce Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Fri, 22 Oct 2010 11:46:00 -0400 Subject: [PATCH] Inject Horde_Auth --- .../ActiveSync/lib/Horde/ActiveSync/Driver/Base.php | 4 +++- .../ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php | 17 ++++++++++++----- horde/rpc.php | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php index 31083e915..035c58fd2 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php @@ -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() diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php index 48c39f508..38e651b35 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Horde.php @@ -42,6 +42,11 @@ class Horde_ActiveSync_Driver_Horde extends Horde_ActiveSync_Driver_Base /** * Const'r + *
+     * Required params (in addition to the base class' requirements):
+     *   connector => Horde_ActiveSync_Driver_Horde_Connector_Registry object
+     *   auth      => Horde_Auth object
+     * 
* * @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; diff --git a/horde/rpc.php b/horde/rpc.php index e397a051c..9598cb364 100644 --- a/horde/rpc.php +++ b/horde/rpc.php @@ -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']) { -- 2.11.0