cleanup the trash bin tables in the database after a user was deleted
This commit is contained in:
parent
544a46c690
commit
1b3b766244
|
@ -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");
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue