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
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);
+ }
+ }
}
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