\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');
}
}
- /**
- * 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 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']);
}
/**