From a672f926b8221883c4f088efd189a40ccaf320bc Mon Sep 17 00:00:00 2001 From: "Aleksander Machniak (Kolab Systems)" Date: Thu, 16 Jun 2011 14:51:11 +0200 Subject: [PATCH] Fixed last commit, better handling of malformed/incomplete configuration --- plugins/kolab_core/config.inc.php.dist | 13 ++++++++----- plugins/kolab_core/rcube_kolab.php | 15 +++++++++------ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/plugins/kolab_core/config.inc.php.dist b/plugins/kolab_core/config.inc.php.dist index 888820a4..9aecf8bd 100644 --- a/plugins/kolab_core/config.inc.php.dist +++ b/plugins/kolab_core/config.inc.php.dist @@ -1,14 +1,17 @@ array()); +// Horde/Kolab classes configuration +$rcmail_config['kolab'] = array( + // IMAP configuration (e.g. connection info, namespaces) + 'imap' => array(), + // Global Horde classes configuration (e.g. cache settings) + 'global' => array(), +); +// Sample configuration for Kolab LDAP binding used by Kolab_Storage //$rcmail_config['kolab']['ldap']['server'] = ''; $rcmail_config['kolab']['ldap']['basedn'] = 'dc=kolabserver,dc=local'; $rcmail_config['kolab']['ldap']['phpdn'] = 'cn=nobody,cn=internal,dc=kolabserver,dc=local'; $rcmail_config['kolab']['ldap']['phppw'] = ''; -// Global Horde classes configuration (e.g. Cache settings) -$rcmail_config['kolab']['global'] = array(); - ?> diff --git a/plugins/kolab_core/rcube_kolab.php b/plugins/kolab_core/rcube_kolab.php index e01de1cf..429e1cfa 100644 --- a/plugins/kolab_core/rcube_kolab.php +++ b/plugins/kolab_core/rcube_kolab.php @@ -34,15 +34,15 @@ class rcube_kolab $rcmail = rcmail::get_instance(); // Set Horde configuration - $GLOBALS['conf']['sql'] = MDB2::parseDSN($rcmail->config->get('db_dsnw')); - $GLOBALS['conf']['sql']['charset'] = 'utf-8'; - $GLOBALS['conf']['sql']['phptype'] = 'mysql'; + $conf['sql'] = MDB2::parseDSN($rcmail->config->get('db_dsnw')); + $conf['sql']['charset'] = 'utf-8'; + $conf['sql']['phptype'] = 'mysql'; // get password of logged user $pwd = $rcmail->decrypt($_SESSION['password']); // load ldap credentials from local config - $conf['kolab'] = $rcmail->config->get('kolab'); + $conf['kolab'] = (array) $rcmail->config->get('kolab'); // Set global Horde config (e.g. Cache settings) if (!empty($conf['kolab']['global'])) { @@ -51,8 +51,11 @@ class rcube_kolab } // Re-set LDAP/IMAP host config - $conf['kolab']['ldap'] = array('server' => 'ldap://' . $_SESSION['imap_host'] . ':389'); - $conf['kolab']['imap'] = array('server' => $_SESSION['imap_host'], 'port' => $_SESSION['imap_port']); + $ldap = array('server' => 'ldap://' . $_SESSION['imap_host'] . ':389'); + $imap = array('server' => $_SESSION['imap_host'], 'port' => $_SESSION['imap_port']); + + $conf['kolab']['ldap'] = array_merge($ldap, (array)$conf['kolab']['ldap']); + $conf['kolab']['imap'] = array_merge($imap, (array)$conf['kolab']['imap']); // pass the current IMAP authentication credentials to the Horde auth system self::$horde_auth = Auth::singleton('kolab');