From 544a46c69067fcbdf55391415c9d06c73fd21331 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Thu, 11 Apr 2013 12:36:08 +0200 Subject: [PATCH] remove used space for versions from db is a user was deleted --- apps/files_versions/appinfo/app.php | 2 ++ apps/files_versions/lib/hooks.php | 14 ++++++++++++++ apps/files_versions/lib/versions.php | 12 ++++++++++++ 3 files changed, 28 insertions(+) diff --git a/apps/files_versions/appinfo/app.php b/apps/files_versions/appinfo/app.php index 9be1c889682..0d0850e1864 100644 --- a/apps/files_versions/appinfo/app.php +++ b/apps/files_versions/appinfo/app.php @@ -12,3 +12,5 @@ OCP\Util::connectHook('OC_Filesystem', 'write', "OCA\Files_Versions\Hooks", "wri // Listen to delete and rename signals OCP\Util::connectHook('OC_Filesystem', 'post_delete', "OCA\Files_Versions\Hooks", "remove_hook"); OCP\Util::connectHook('OC_Filesystem', 'rename', "OCA\Files_Versions\Hooks", "rename_hook"); +//Listen to delete user signal +OCP\Util::connectHook('OC_User', 'pre_deleteUser', "OCA\Files_Versions\Hooks", "deleteUser_hook"); diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php index 7891b20e92f..f0082b301a3 100644 --- a/apps/files_versions/lib/hooks.php +++ b/apps/files_versions/lib/hooks.php @@ -63,4 +63,18 @@ class Hooks { } } + /** + * @brief clean up user specific settings if user gets deleted + * @param array with uid + * + * This function is connected to the pre_deleteUser signal of OC_Users + * to remove the used space for versions stored in the database + */ + public static function deleteUser_hook($params) { + if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { + $uid = $params['uid']; + Storage::deleteUser($uid); + } + } + } diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 5fc26fd090e..47d044873ad 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -279,6 +279,18 @@ class Storage { } + + /** + * @brief deletes used space for files versions in db if user was deleted + * + * @param type $uid id of deleted user + * @return result of db delete operation + */ + public static function deleteUser($uid) { + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*files_versions` WHERE `user`=?'); + return $query->execute(array($uid)); + } + /** * @brief get the size of all stored versions from a given user * @param $uid id from the user -- 2.39.5