From c4931cff3427a56deeeffe9bab536728593119d4 Mon Sep 17 00:00:00 2001
From: Jakob Sack <kde@jakobsack.de>
Date: Wed, 10 Aug 2011 14:28:14 +0200
Subject: [PATCH] Delete addressbooks of deleted users

---
 apps/contacts/appinfo/app.php |  4 ++--
 apps/contacts/lib/hooks.php   | 41 +++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 2 deletions(-)
 create mode 100644 apps/contacts/lib/hooks.php

diff --git a/apps/contacts/appinfo/app.php b/apps/contacts/appinfo/app.php
index 7ff4726525..30aa0e1aaa 100644
--- a/apps/contacts/appinfo/app.php
+++ b/apps/contacts/appinfo/app.php
@@ -1,7 +1,9 @@
 <?php
 
 OC::$CLASSPATH['OC_Contacts_Addressbook'] = 'apps/contacts/lib/addressbook.php';
+OC::$CLASSPATH['OC_Contacts_Hooks'] = 'apps/contacts/lib/hooks.php';
 OC::$CLASSPATH['OC_Connector_Sabre_CardDAV'] = 'apps/contacts/lib/connector_sabre.php';
+OC_HOOK::connect('OC_User', 'post_createUser', 'OC_Contacts_Hooks', 'deleteUser');
 
 OC_App::register( array( 
   'order' => 10,
@@ -14,5 +16,3 @@ OC_App::addNavigationEntry( array(
   'href' => OC_Helper::linkTo( 'contacts', 'index.php' ),
   'icon' => OC_Helper::imagePath( 'contacts', 'icon.png' ),
   'name' => 'Contacts' ));
-
-?>
diff --git a/apps/contacts/lib/hooks.php b/apps/contacts/lib/hooks.php
new file mode 100644
index 0000000000..70f1fe1851
--- /dev/null
+++ b/apps/contacts/lib/hooks.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * ownCloud - Addressbook
+ *
+ * @author Jakob Sack
+ * @copyright 2011 Jakob Sack mail@jakobsack.de
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * This class contains all hooks.
+ */
+class OC_Contacts_Hooks{
+	/**
+	 * @brief Deletes all Addressbooks of a certain user
+	 * @param paramters parameters from postDeleteUser-Hook
+	 * @return array
+	 */
+	public function deleteUser($parameters) {
+		$addressbooks = OC_Contacts_Addressbook::allAddressbooks($parameters['uid']);
+		
+		foreach($addressbooks as $addressbook) {
+			OC_Contacts_Addressbook::deleteAddressbook($addressbook['id']);
+		}
+
+		return true;
+	}
+}
-- 
GitLab