function getID($path) { // use the share table from the db to find the item source if the file was reshared because shared files //are not stored in the file cache. if (substr(OC_Filesystem::getMountPoint($path), -7, 6) == "Shared") { $path_parts = explode('/', $path, 5); $user = $path_parts[1]; $intPath = '/' . $path_parts[4]; $query = \OC_DB::prepare('SELECT `item_source` FROM `*PREFIX*share` WHERE `uid_owner` = ? AND `file_target` = ? '); $result = $query->execute(array($user, $intPath)); $row = $result->fetchRow(); $fileSource = $row['item_source']; } else { $fileSource = OC_Filecache::getId($path, ''); } return $fileSource; }
} // Enf of backward compatibility if (isset($_GET['file']) || isset($_GET['dir'])) { if (isset($_GET['dir'])) { $type = 'folder'; $path = $_GET['dir']; $baseDir = $path; $dir = $baseDir; } else { $type = 'file'; $path = $_GET['file']; } $uidOwner = substr($path, 1, strpos($path, '/', 1) - 1); if (OCP\User::userExists($uidOwner)) { OC_Util::setupFS($uidOwner); $fileSource = OC_Filecache::getId($path, ''); if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) { // TODO Fix in the getItems if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) { header('HTTP/1.0 404 Not Found'); $tmpl = new OCP\Template('', '404', 'guest'); $tmpl->printPage(); exit; } if (isset($linkItem['share_with'])) { // Check password if (isset($_POST['password'])) { $password = $_POST['password']; $storedHash = $linkItem['share_with']; $forcePortable = CRYPT_BLOWFISH != 1; $hasher = new PasswordHash(8, $forcePortable);