From 18b40c1a3214518764e99f69b581bd7c90426091 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 04 Dec 2013 07:58:43 -0500
Subject: [PATCH] Fix issue where groups were not deleted when "Replace entire addressbook" option on contacts import was used (#1489420)
---
program/lib/Roundcube/rcube_ldap.php | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index b733e24..2d4aa08 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/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');
+ }
+ }
}
/**
--
Gitblit v1.9.1