CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_addressbook.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_contacts.php | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_ldap.php | ●●●●● patch | view | raw | blame | history | |
program/steps/addressbook/import.inc | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== - Fix issue where groups were not deleted when "Replace entire addressbook" option on contacts import was used (#1489420) - Fix unreliable mimetype tests in Installer (#1489453) - Fix performance of listing writeable folders (#1489451) program/lib/Roundcube/rcube_addressbook.php
@@ -311,8 +311,10 @@ /** * Mark all records in database as deleted * * @param bool $with_groups Remove also groups */ function delete_all() function delete_all($with_groups = false) { /* empty for read-only address books */ } program/lib/Roundcube/rcube_contacts.php
@@ -812,16 +812,30 @@ /** * Remove all records from the database * * @param bool $with_groups Remove also groups * * @return int Number of removed records */ function delete_all() function delete_all($with_groups = false) { $this->cache = null; $this->db->query("UPDATE ".$this->db->table_name($this->db_name). " SET del=1, changed=".$this->db->now(). " WHERE user_id = ?", $this->user_id); $this->db->query("UPDATE " . $this->db->table_name($this->db_name) . " SET del = 1, changed = " . $this->db->now() . " WHERE user_id = ?", $this->user_id); return $this->db->affected_rows(); $count = $this->db->affected_rows(); if ($with_groups) { $this->db->query("UPDATE " . $this->db->table_name($this->db_groups) . " SET del = 1, changed = " . $this->db->now() . " WHERE user_id = ?", $this->user_id); $count += $this->db->affected_rows(); } return $count; } @@ -860,11 +874,11 @@ function delete_group($gid) { // flag group record as deleted $sql_result = $this->db->query( "UPDATE ".$this->db->table_name($this->db_groups). " SET del=1, changed=".$this->db->now(). " WHERE contactgroup_id=?". " AND user_id=?", $this->db->query( "UPDATE " . $this->db->table_name($this->db_groups) . " SET del = 1, changed = " . $this->db->now() . " WHERE contactgroup_id = ?" . " AND user_id = ?", $gid, $this->user_id ); @@ -872,7 +886,6 @@ return $this->db->affected_rows(); } /** * Rename a specific contact group program/lib/Roundcube/rcube_ldap.php
@@ -1324,8 +1324,10 @@ /** * Remove all contact records * * @param bool $with_groups Delete also groups if enabled */ function delete_all() function delete_all($with_groups = false) { // searching for contact entries $dn_list = $this->ldap->list_entries($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)'); @@ -1336,6 +1338,16 @@ } $this->delete($dn_list); } if ($with_groups && $this->groups && ($groups = $this->_fetch_groups()) && count($groups)) { foreach ($groups as $group) { $this->ldap->delete($group['dn']); } if ($this->cache) { $this->cache->remove('groups'); } } } /** program/steps/addressbook/import.inc
@@ -249,7 +249,7 @@ $IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->invalid = $IMPORT_STATS->errors = 0; if ($replace) { $CONTACTS->delete_all(); $CONTACTS->delete_all($CONTACTS->groups && $with_groups < 2); } if ($with_groups) {