summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2008-09-02 07:42:46 +0000
committerthomascube <thomas@roundcube.net>2008-09-02 07:42:46 +0000
commitade8e117dfbb62f6dbd16b4aca81dfbdbd054579 (patch)
tree6d67359f797e4bdb976f7a446713499224ae02ee /program/steps
parente7f85bd27474e1b1bbb9522dd019f8bbe3ca7bd1 (diff)
Let rcmail class create address book instances
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/addressbook/copy.inc9
-rw-r--r--program/steps/addressbook/func.inc11
-rw-r--r--program/steps/mail/addcontact.inc16
3 files changed, 6 insertions, 30 deletions
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index af8b87c40..268903bf5 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -23,12 +23,9 @@ $cid = get_input_value('_cid', RCUBE_INPUT_POST);
$target = get_input_value('_to', RCUBE_INPUT_POST);
if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($target) && $target != $source)
{
- if ($target != '0')
- $TARGET = new rcube_ldap($CONFIG['ldap_public'][$target]);
- else
- $TARGET = new rcube_contacts($DB, $_SESSION['user_id']);
-
- $success = false;
+ $success = false;
+ $TARGET = $RCMAIL->get_address_book($target);
+
if ($TARGET && $TARGET->ready && !$TARGET->readonly)
$success = $TARGET->insert($CONTACTS->search($CONTACTS->primary_key, $cid), true);
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 98c56af78..c4fbab219 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -20,16 +20,7 @@
*/
// instantiate a contacts object according to the given source
-if (($source = get_input_value('_source', RCUBE_INPUT_GPC)) && isset($CONFIG['ldap_public'][$source]))
- $CONTACTS = new rcube_ldap($CONFIG['ldap_public'][$source]);
-else if (strtolower($CONFIG['address_book_type']) == 'ldap') {
- // Get the first LDAP address book.
- $source = key((array)$CONFIG['ldap_public']);
- $prop = current((array)$CONFIG['ldap_public']);
- $CONTACTS = new rcube_ldap($prop);
-} else {
- $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']);
-} // end else
+$CONTACTS = $RCMAIL->get_address_book(($source = get_input_value('_source', RCUBE_INPUT_GPC)));
$CONTACTS->set_pagesize($CONFIG['pagesize']);
diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc
index aefdd83de..d98d71faf 100644
--- a/program/steps/mail/addcontact.inc
+++ b/program/steps/mail/addcontact.inc
@@ -20,22 +20,10 @@
*/
$done = false;
+$CONTACTS = $RCMAIL->get_address_book(null, true);
-if (!empty($_POST['_address']))
+if (!empty($_POST['_address']) && is_object($CONTACTS))
{
- $CONTACTS = array();
- if (strtolower($CONFIG['address_book_type']) == 'ldap') {
- // Use the first writable LDAP address book.
- foreach ($CONFIG["ldap_public"] as $id => $prop) {
- if ($prop["writable"]) {
- $CONTACTS = new rcube_ldap($prop);
- break;
- } // end if
- } // end foreach
- } // end if
- else {
- $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']);
- } // end else
$contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false);
if (!empty($contact_arr[1]['mailto']))