From 5f01318ef6c85a6799ea40ee42f58226bca09e3b Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Tue, 13 Jul 2010 15:36:55 -0600 Subject: [PATCH] Remove horde/Core dependency in horde/Auth --- framework/Auth/lib/Horde/Auth/Cyrsql.php | 9 ++++++--- framework/Auth/lib/Horde/Auth/Cyrus.php | 10 ++++++---- framework/Auth/lib/Horde/Auth/Imap.php | 7 +++++-- framework/Core/lib/Horde/Core/Factory/Auth.php | 6 ++++++ 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/framework/Auth/lib/Horde/Auth/Cyrsql.php b/framework/Auth/lib/Horde/Auth/Cyrsql.php index a472fb6f7..5cb57b4f2 100644 --- a/framework/Auth/lib/Horde/Auth/Cyrsql.php +++ b/framework/Auth/lib/Horde/Auth/Cyrsql.php @@ -109,6 +109,8 @@ class Horde_Auth_Cyrsql extends Horde_Auth_Sql * * @param array $params Parameters: *
+     * 'charset' - (string) Default charset.
+     *             DEFAULT: NONE
      * 'domain_field' - (string) If set to anything other than 'none' this is
      *                  used as field name where domain is stored.
      *                  DEFAULT: 'domain_name'
@@ -138,6 +140,7 @@ class Horde_Auth_Cyrsql extends Horde_Auth_Sql
         unset($params['imap']);
 
         $params = array_merge(array(
+            'charset' => null,
             'domain_field' => 'domain_name',
             'folders' => array(),
             'hidden_accounts' => array('cyrus'),
@@ -245,7 +248,7 @@ class Horde_Auth_Cyrsql extends Horde_Auth_Sql
         }
 
         try {
-            $mailbox = Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+            $mailbox = Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $this->_params['charset'], 'utf7-imap');
             $this->_imap->createMailbox($mailbox);
             $this->_imap->setACL($mailbox, $this->_params['cyradm'], 'lrswipcda');
         } catch (Horde_Imap_Client_Exception $e) {
@@ -257,12 +260,12 @@ class Horde_Auth_Cyrsql extends Horde_Auth_Sql
                 ($this->_params['domain_field'] != 'none')) {
                 list($userName, $domain) = explode('@', $userName);
                 $tmp = $userName . $this->_separator . $value . '@' . $domain;
-Horde_String::convertCharset($userName . $this->_separator . $value . '@' . $domain, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+Horde_String::convertCharset($userName . $this->_separator . $value . '@' . $domain, $this->_params['charset'], 'utf7-imap');
             } else {
                 $tmp = $userName . $this->_separator . $value;
             }
 
-            $tmp = Horde_String::convertCharset($tmp, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+            $tmp = Horde_String::convertCharset($tmp, $this->_params['charset'], 'utf7-imap');
             $this->_imap->createMailbox($tmp);
             $this->_oimap>setACL($tmp, $this->_params['cyradm'], 'lrswipcda');
         }
diff --git a/framework/Auth/lib/Horde/Auth/Cyrus.php b/framework/Auth/lib/Horde/Auth/Cyrus.php
index 958f1d9e5..d1e72c978 100644
--- a/framework/Auth/lib/Horde/Auth/Cyrus.php
+++ b/framework/Auth/lib/Horde/Auth/Cyrus.php
@@ -53,8 +53,9 @@ class Horde_Auth_Cyrus extends Horde_Auth_Base
      *
      * @param array $params  Parameters:
      * 
-     * TODO
      * 'backend' - (Horde_Auth_Base) [REQUIRED] The backend object.
+     * 'charset' - (string) Default charset.
+     *             DEFAULT: NONE
      * 'folders' - (array) An array of folders to create under username.
      *             DEFAULT: NONE
      * 'imap' - (Horde_Imap_Client_Base) [REQUIRED] An IMAP client object.
@@ -85,6 +86,7 @@ class Horde_Auth_Cyrus extends Horde_Auth_Base
         unset($params['backend']);
 
         $params = array_merge(array(
+            'charset' => null,
             'separator' => '.',
         ), $params);
 
@@ -119,7 +121,7 @@ class Horde_Auth_Cyrus extends Horde_Auth_Base
     {
         $this->_backend->addUser($userId, $credentials);
 
-        $mailbox = Horde_String::convertCharset('user' . $this->_params['separator'] . $userId, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+        $mailbox = Horde_String::convertCharset('user' . $this->_params['separator'] . $userId, $this->_params['charset'], 'utf7-imap');
 
         try {
             $this->_imap->createMailbox($mailbox);
@@ -131,7 +133,7 @@ class Horde_Auth_Cyrus extends Horde_Auth_Base
             is_array($this->_params['folders'])) {
             foreach ($this->_params['folders'] as $folder) {
                 try {
-                    $this->_imap->createMailbox($mailbox . Horde_String::convertCharset($this->_params['separator'] . $folder, $GLOBALS['registry']->getCharset(), 'utf7-imap'));
+                    $this->_imap->createMailbox($mailbox . Horde_String::convertCharset($this->_params['separator'] . $folder, $this->_params['charset'], 'utf7-imap'));
                 } catch (Horde_Imap_Client_Exception $e) {}
             }
         }
@@ -157,7 +159,7 @@ class Horde_Auth_Cyrus extends Horde_Auth_Base
     {
         $this->_backend->removeUser($userId);
 
-        $mailbox = Horde_String::convertCharset('user' . $this->_params['separator'] . $userId, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+        $mailbox = Horde_String::convertCharset('user' . $this->_params['separator'] . $userId, $this->_params['charset'], 'utf7-imap');
 
         /* Set ACL for mailbox deletion. */
         list($admin) = explode('@', $this->_params['cyradmin']);
diff --git a/framework/Auth/lib/Horde/Auth/Imap.php b/framework/Auth/lib/Horde/Auth/Imap.php
index 76277967c..14a32035d 100644
--- a/framework/Auth/lib/Horde/Auth/Imap.php
+++ b/framework/Auth/lib/Horde/Auth/Imap.php
@@ -33,6 +33,8 @@ class Horde_Auth_Imap extends Horde_Auth_Base
      *                    DEFAULT: null
      * 'admin_user' - (string) The name of a user with admin privileges.
      *                DEFAULT: null
+     * 'charset' - (string) Default charset.
+     *             DEFAULT: NONE
      * 'hostspec' - (string) The hostname or IP address of the server.
      *              DEFAULT: 'localhost'
      * 'port' - (integer) The server port to which we will connect.
@@ -51,6 +53,7 @@ class Horde_Auth_Imap extends Horde_Auth_Base
         $params = array_merge(array(
             'admin_password' => null,
             'admin_user' => null,
+            'charset' => null,
             'hostspec' => '',
             'port' => null,
             'secure' => 'none',
@@ -99,7 +102,7 @@ class Horde_Auth_Imap extends Horde_Auth_Base
     {
         try {
             $ob = $this->_getOb($this->_params['admin_user'], $this->_params['admin_password']);
-            $mailbox = Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $GLOBALS['registry']->getCharset(), 'utf7-imap');
+            $mailbox = Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $this->_params['charset'], 'utf7-imap');
             $ob->createMailbox($mailbox);
             $ob->setACL($mailbox, $this->_params['admin_user'], 'lrswipcda');
         } catch (Horde_Imap_Client_Exception $e) {
@@ -119,7 +122,7 @@ class Horde_Auth_Imap extends Horde_Auth_Base
         try {
             $ob = $this->_getOb($this->_params['admin_user'], $this->_params['admin_password']);
             $ob->setACL($mailbox, $this->_params['admin_user'], 'lrswipcda');
-            $ob->deleteMailbox(Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $GLOBALS['registry']->getCharset(), 'utf7-imap'));
+            $ob->deleteMailbox(Horde_String::convertCharset($this->_params['userhierarchy'] . $userId, $this->_params['charset'], 'utf7-imap'));
         } catch (Horde_Imap_Client_Exception $e) {
             throw new Horde_Auth_Exception($e);
         }
diff --git a/framework/Core/lib/Horde/Core/Factory/Auth.php b/framework/Core/lib/Horde/Core/Factory/Auth.php
index b6ade055c..2d0d1b344 100644
--- a/framework/Core/lib/Horde/Core/Factory/Auth.php
+++ b/framework/Core/lib/Horde/Core/Factory/Auth.php
@@ -125,6 +125,8 @@ class Horde_Core_Factory_Auth
                 if ($lc_driver == 'cyrus') {
                     $params['backend'] = $this->getOb($params['backend']['driver'], $params['backend']['params']);
                 }
+
+                $params['charset'] = $GLOBALS['registry']->getCharset();
                 break;
 
             case 'http_remote':
@@ -133,6 +135,10 @@ class Horde_Core_Factory_Auth
                 }
                 break;
 
+            case 'imap':
+                $params['charset'] = $GLOBALS['registry']->getCharset();
+                break;
+
             case 'kolab':
                 $params['kolab'] = $this->_injector->getInstance('Horde_Kolab_Session');
                 break;
-- 
2.11.0