aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-04-09 18:10:17 +0200
committerVincent Petry <pvince81@owncloud.com>2015-04-09 18:10:17 +0200
commit2865f099845069bb81df78f27795bcbc102ad6ee (patch)
tree61863872c4c14bddbbcbbd9edd8555465de31b63 /apps/files_sharing
parentb60d5d3d6f07313ab299eb5f1160eda2d49ae224 (diff)
parent5803a1f5f7a22feee84cef552bfff3e6b40e6859 (diff)
downloadnextcloud-server-2865f099845069bb81df78f27795bcbc102ad6ee.tar.gz
nextcloud-server-2865f099845069bb81df78f27795bcbc102ad6ee.zip
Merge pull request #15282 from owncloud/keepsharerelationshipondelete
Keep shares when deleting shared folders
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/lib/helper.php1
-rw-r--r--apps/files_sharing/lib/updater.php35
-rw-r--r--apps/files_sharing/tests/deleteorphanedsharesjobtest.php3
3 files changed, 3 insertions, 36 deletions
diff --git a/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php
index 3f1de7233ae..5b5525e244f 100644
--- a/apps/files_sharing/lib/helper.php
+++ b/apps/files_sharing/lib/helper.php
@@ -33,7 +33,6 @@ class Helper {
\OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
\OCP\Util::connectHook('OC_Filesystem', 'setup', '\OCA\Files_Sharing\External\Manager', 'setup');
\OCP\Util::connectHook('OC_Filesystem', 'post_write', '\OC\Files\Cache\Shared_Updater', 'writeHook');
- \OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Shared_Updater', 'postDeleteHook');
\OCP\Util::connectHook('OC_Filesystem', 'delete', '\OC\Files\Cache\Shared_Updater', 'deleteHook');
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Shared_Updater', 'renameHook');
\OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php
index d748d5555f6..322c031f2f1 100644
--- a/apps/files_sharing/lib/updater.php
+++ b/apps/files_sharing/lib/updater.php
@@ -27,9 +27,6 @@ namespace OC\Files\Cache;
class Shared_Updater {
- // shares which can be removed from oc_share after the delete operation was successful
- static private $toRemove = array();
-
/**
* walk up the users file tree and update the etags
* @param string $user
@@ -82,25 +79,6 @@ class Shared_Updater {
}
/**
- * remove all shares for a given file if the file was deleted
- *
- * @param string $path
- */
- private static function removeShare($path) {
- $fileSource = self::$toRemove[$path];
-
- if (!\OC\Files\Filesystem::file_exists($path)) {
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `file_source`=?');
- try {
- \OC_DB::executeAudited($query, array($fileSource));
- } catch (\Exception $e) {
- \OCP\Util::writeLog('files_sharing', "can't remove share: " . $e->getMessage(), \OCP\Util::WARN);
- }
- }
- unset(self::$toRemove[$path]);
- }
-
- /**
* @param array $params
*/
static public function writeHook($params) {
@@ -122,19 +100,6 @@ class Shared_Updater {
static public function deleteHook($params) {
$path = $params['path'];
self::correctFolders($path);
-
- $fileInfo = \OC\Files\Filesystem::getFileInfo($path);
-
- // mark file as deleted so that we can clean up the share table if
- // the file was deleted successfully
- self::$toRemove[$path] = $fileInfo['fileid'];
- }
-
- /**
- * @param array $params
- */
- static public function postDeleteHook($params) {
- self::removeShare($params['path']);
}
/**
diff --git a/apps/files_sharing/tests/deleteorphanedsharesjobtest.php b/apps/files_sharing/tests/deleteorphanedsharesjobtest.php
index e1c6a6f6ad3..20f3bcd5ebd 100644
--- a/apps/files_sharing/tests/deleteorphanedsharesjobtest.php
+++ b/apps/files_sharing/tests/deleteorphanedsharesjobtest.php
@@ -55,6 +55,9 @@ class DeleteOrphanedSharesJobTest extends \Test\TestCase {
$appManager = \OC::$server->getAppManager();
self::$trashBinStatus = $appManager->isEnabledForUser('files_trashbin');
$appManager->disableApp('files_trashbin');
+
+ // just in case...
+ \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
}
public static function tearDownAfterClass() {