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