From 5ed119e5341a9c1225bbb40c6e3d6ea787ca17ed Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 27 Jul 2011 07:52:46 -0400
Subject: [PATCH] - Don't use default source if source id is specified in get_address_source()
---
program/include/rcmail.php | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 72f0efa..f37186c 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -403,18 +403,28 @@
if ($plugin['instance'] instanceof rcube_addressbook) {
$contacts = $plugin['instance'];
}
- else if ($abook_type == 'ldap') {
- // Use the first writable LDAP address book.
- foreach ($ldap_config as $id => $prop) {
- if (!$writeable || $prop['writable']) {
- $contacts = new rcube_ldap($prop, $this->config->get('ldap_debug'), $this->config->mail_domain($_SESSION['imap_host']));
- break;
+ else if (!$id) {
+ if ($abook_type == 'ldap') {
+ // Use the first writable LDAP address book.
+ foreach ($ldap_config as $id => $prop) {
+ if (!$writeable || $prop['writable']) {
+ $contacts = new rcube_ldap($prop, $this->config->get('ldap_debug'), $this->config->mail_domain($_SESSION['imap_host']));
+ break;
+ }
}
}
+ else { // $id == 'sql'
+ $contacts = new rcube_contacts($this->db, $this->user->ID);
+ }
}
- else { // $id == 'sql'
- $contacts = new rcube_contacts($this->db, $this->user->ID);
- }
+ }
+
+ if (!$contacts) {
+ raise_error(array(
+ 'code' => 600, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Addressbook source ($id) not found!"),
+ true, true);
}
// add to the 'books' array for shutdown function
--
Gitblit v1.9.1