summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2012-06-28 11:48:57 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2012-06-28 11:48:57 +0200
commit52f99a7570921f994035c96002b7ae46acdfea9b (patch)
treee0870d29c749d3eca5cb33b44d69efd1617bc154 /apps
parentdac539b61936e61c804c3d8fbf91003803e2cc81 (diff)
downloadnextcloud-server-52f99a7570921f994035c96002b7ae46acdfea9b.tar.gz
nextcloud-server-52f99a7570921f994035c96002b7ae46acdfea9b.zip
delete file versions if the user deletes a file
Diffstat (limited to 'apps')
-rw-r--r--apps/files_archive/appinfo/app.php2
-rw-r--r--apps/files_versions/lib/hooks_handler.php38
2 files changed, 40 insertions, 0 deletions
diff --git a/apps/files_archive/appinfo/app.php b/apps/files_archive/appinfo/app.php
index 67376c4a03a..e6026670264 100644
--- a/apps/files_archive/appinfo/app.php
+++ b/apps/files_archive/appinfo/app.php
@@ -7,7 +7,9 @@
*/
OC::$CLASSPATH['OC_Filestorage_Archive']='apps/files_archive/lib/storage.php';
+OC::$CLASSPATH['OC_Files_Versions_Hooks_Handler'] = 'files_versions/lib/hooks_handler.php';
OCP\Util::connectHook('OC_Filesystem','get_mountpoint','OC_Filestorage_Archive','autoMount');
+OCP\Util::connectHook('OC_Filesystem', 'delete', "OC_Files_Versions_Hooks_Handler", "removeVersions");
OCP\Util::addscript( 'files_archive', 'archive' );
diff --git a/apps/files_versions/lib/hooks_handler.php b/apps/files_versions/lib/hooks_handler.php
new file mode 100644
index 00000000000..4be2d1c284b
--- /dev/null
+++ b/apps/files_versions/lib/hooks_handler.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+* ownCloud - hooks handler of the Versions app
+*
+* @author Bjoern Schiessle
+* @copyright 2012 Bjoern Schiessle schiessle@owncloud.com
+*
+* 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 Lesser General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+class OC_Files_Versions_Hooks_Handler {
+
+ public static function removeVersions($params) {
+ $rel_path = $params[OC_Filesystem::signal_param_path];
+ $abs_path = \OCP\Config::getSystemValue('datadirectory').'/'.\OC_User::getUser()."/versions".$rel_path;
+ if(OCA_Versions\Storage::isversioned($rel_path)) {
+ $versions = OCA_Versions\Storage::getVersions($rel_path);
+ foreach ($versions as $v){
+ unlink($abs_path.'.v' . $v['version']);
+ }
+ }
+ }
+}
+
+?> \ No newline at end of file