diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 525ffa835786865e9c07dec9d47bf37b570bd7ba..15377680ab8034e71e34fd39a242a2ba4fc38e49 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -1,6 +1,26 @@ <?php // Load other apps for file previews OC_App::loadApps(); + +// Compatibility with shared-by-link items from ownCloud 4.0 +// requires old Sharing table ! +// support will be removed in OC 5.0,a +if (isset($_GET['token'])) { + unset($_GET['file']); + $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1'); + $filepath = $qry->execute(array($_GET['token']))->fetchOne(); + if(isset($filepath)) { + $info = OC_FileCache_Cached::get($filepath, ''); + if(strtolower($info['mimetype']) == 'httpd/unix-directory') { + $_GET['dir'] = $filepath; + } else { + $_GET['file'] = $filepath; + } + \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN); + } +} +// Enf of backward compatibility + if (isset($_GET['file']) || isset($_GET['dir'])) { if (isset($_GET['dir'])) { $type = 'folder';