diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-12-04 13:58:43 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-12-04 13:58:43 +0100 |
commit | 18b40c1a3214518764e99f69b581bd7c90426091 (patch) | |
tree | be9eccab3b06c0b01fd6fb590c9320a5e1afc5d9 /program/lib/Roundcube/rcube_contacts.php | |
parent | e71ceb0c98b33409af5978f0f33c6c95148bd86b (diff) |
Fix issue where groups were not deleted when "Replace entire addressbook" option on contacts import was used (#1489420)
Diffstat (limited to 'program/lib/Roundcube/rcube_contacts.php')
-rw-r--r-- | program/lib/Roundcube/rcube_contacts.php | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php index 2e03352bf..ee53f44ed 100644 --- a/program/lib/Roundcube/rcube_contacts.php +++ b/program/lib/Roundcube/rcube_contacts.php @@ -812,16 +812,30 @@ class rcube_contacts extends rcube_addressbook /** * 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 @@ class rcube_contacts extends rcube_addressbook 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 ); @@ -873,7 +887,6 @@ class rcube_contacts extends rcube_addressbook return $this->db->affected_rows(); } - /** * Rename a specific contact group * |