Commit 1b3b7662 authored by Björn Schießle's avatar Björn Schießle
Browse files

cleanup the trash bin tables in the database after a user was deleted

parent 544a46c6
......@@ -3,5 +3,7 @@
OC::$CLASSPATH['OCA\Files_Trashbin\Hooks'] = 'files_trashbin/lib/hooks.php';
OC::$CLASSPATH['OCA\Files_Trashbin\Trashbin'] = 'files_trashbin/lib/trash.php';
//Listen to delete file signal
OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Files_Trashbin\Hooks", "remove_hook");
//Listen to delete user signal
OCP\Util::connectHook('OC_User', 'pre_deleteUser', "OCA\Files_Trashbin\Hooks", "deleteUser_hook");
\ No newline at end of file
......@@ -42,4 +42,18 @@ class Hooks {
Trashbin::move2trash($path);
}
}
/**
* @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 the trash bin stored in the database
*/
public static function deleteUser_hook($params) {
if( \OCP\App::isEnabled('files_trashbin') ) {
$uid = $params['uid'];
Trashbin::deleteUser($uid);
}
}
}
......@@ -336,6 +336,22 @@ class Trashbin {
return $view->file_exists($target);
}
/**
* @brief deletes used space for trash bin 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_trash` WHERE `user`=?');
$result = $query->execute(array($uid));
if ($result) {
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*files_trashsize` WHERE `user`=?');
return $query->execute(array($uid));
}
return false;
}
/**
* clean up the trash bin
* @param max. available disk space for trashbin
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment