summaryrefslogtreecommitdiffstats
path: root/apps/files_versions/lib/hooks.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_versions/lib/hooks.php')
-rw-r--r--apps/files_versions/lib/hooks.php33
1 files changed, 28 insertions, 5 deletions
diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php
index 1a584232ba7..024cb6a3c39 100644
--- a/apps/files_versions/lib/hooks.php
+++ b/apps/files_versions/lib/hooks.php
@@ -16,12 +16,14 @@ class Hooks {
public static function connectHooks() {
// Listen to write signals
- \OCP\Util::connectHook('OC_Filesystem', 'write', "OCA\Files_Versions\Hooks", "write_hook");
+ \OCP\Util::connectHook('OC_Filesystem', 'write', 'OCA\Files_Versions\Hooks', 'write_hook');
// Listen to delete and rename signals
- \OCP\Util::connectHook('OC_Filesystem', 'post_delete', "OCA\Files_Versions\Hooks", "remove_hook");
- \OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Files_Versions\Hooks", "pre_remove_hook");
- \OCP\Util::connectHook('OC_Filesystem', 'rename', "OCA\Files_Versions\Hooks", "rename_hook");
- \OCP\Util::connectHook('OC_Filesystem', 'copy', "OCA\Files_Versions\Hooks", "copy_hook");
+ \OCP\Util::connectHook('OC_Filesystem', 'post_delete', 'OCA\Files_Versions\Hooks', 'remove_hook');
+ \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Versions\Hooks', 'pre_remove_hook');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Versions\Hooks', 'rename_hook');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_copy', 'OCA\Files_Versions\Hooks', 'copy_hook');
+ \OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
+ \OCP\Util::connectHook('OC_Filesystem', 'copy', 'OCA\Files_Versions\Hooks', 'pre_renameOrCopy_hook');
}
/**
@@ -102,4 +104,25 @@ class Hooks {
}
}
+ /**
+ * Remember owner and the owner path of the source file.
+ * If the file already exists, then it was a upload of a existing file
+ * over the web interface and we call Storage::store() directly
+ *
+ * @param array $params array with oldpath and newpath
+ *
+ */
+ public static function pre_renameOrCopy_hook($params) {
+ if (\OCP\App::isEnabled('files_versions')) {
+
+ $view = new \OC\Files\View(\OCP\User::getUser() . '/files');
+ if ($view->file_exists($params['newpath'])) {
+ Storage::store($params['newpath']);
+ } else {
+ Storage::setSourcePathAndUser($params['oldpath']);
+ }
+
+ }
+ }
+
}