From e6acc84d685860d9e2345af3a07cda2074d92fe8 Mon Sep 17 00:00:00 2001 From: alec Date: Sat, 29 Aug 2009 18:41:17 +0000 Subject: - Fix LDAP contact update when RDN field is changed (#1485788) git-svn-id: https://svn.roundcube.net/trunk@2889 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/steps/addressbook/save.inc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'roundcubemail/program/steps') diff --git a/roundcubemail/program/steps/addressbook/save.inc b/roundcubemail/program/steps/addressbook/save.inc index 639e0f2d1..b28294eea 100644 --- a/roundcubemail/program/steps/addressbook/save.inc +++ b/roundcubemail/program/steps/addressbook/save.inc @@ -57,17 +57,24 @@ if (!empty($cid)) $plugin = $RCMAIL->plugins->exec_hook('save_contact', array('id' => $cid, 'record' => $a_record, 'source' => get_input_value('_source', RCUBE_INPUT_GPC))); $a_record = $plugin['record']; - if (!$plugin['abort'] && $CONTACTS->update($cid, $a_record)) + if (!$plugin['abort'] && ($result = $CONTACTS->update($cid, $a_record))) { + // LDAP DN change + if (is_string($result) && strlen($result)>1) { + $newcid = $result; + // change cid in POST for 'show' action + $_POST['_cid'] = $newcid; + } + // define list of cols to be displayed $a_js_cols = array(); - $record = $CONTACTS->get_record($cid, true); + $record = $CONTACTS->get_record($newcid ? $newcid : $cid, true); foreach (array('name', 'email') as $col) $a_js_cols[] = (string)$record[$col]; // update the changed col in list - $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols); + $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid); // show confirmation $OUTPUT->show_message('successfullysaved', 'confirmation', null, false); -- cgit v1.2.3