/** * create unique target * @param string $filePath * @param string $shareWith * @param string $exclude * @return string */ public function generateTarget($filePath, $shareWith, $exclude = null) { $shareFolder = \OCA\Files_Sharing\Helper::getShareFolder(); $target = \OC\Files\Filesystem::normalizePath($shareFolder . '/' . basename($filePath)); // for group shares we return the target right away if ($shareWith === false) { return $target; } \OC\Files\Filesystem::initMountPoints($shareWith); $view = new \OC\Files\View('/' . $shareWith . '/files'); if (!$view->is_dir($shareFolder)) { $dir = ''; $subdirs = explode('/', $shareFolder); foreach ($subdirs as $subdir) { $dir = $dir . '/' . $subdir; if (!$view->is_dir($dir)) { $view->mkdir($dir); } } } $excludeList = \OCP\Share::getItemsSharedWithUser('file', $shareWith, self::FORMAT_TARGET_NAMES); if (is_array($exclude)) { $excludeList = array_merge($excludeList, $exclude); } return \OCA\Files_Sharing\Helper::generateUniqueTarget($target, $excludeList, $view); }
/** * test set and get share folder */ function testSetGetShareFolder() { $this->assertSame('/', \OCA\Files_Sharing\Helper::getShareFolder()); \OCA\Files_Sharing\Helper::setShareFolder('/Shared'); $this->assertSame('/Shared', \OCA\Files_Sharing\Helper::getShareFolder()); // cleanup \OCP\Config::deleteSystemValue('share_folder'); }
/** * test set and get share folder */ function testSetGetShareFolder() { $this->assertSame('/', \OCA\Files_Sharing\Helper::getShareFolder()); \OCA\Files_Sharing\Helper::setShareFolder('/Shared/Folder'); $sharedFolder = \OCA\Files_Sharing\Helper::getShareFolder(); $this->assertSame('/Shared/Folder', \OCA\Files_Sharing\Helper::getShareFolder()); $this->assertTrue(\OC\Files\Filesystem::is_dir($sharedFolder)); // cleanup \OCP\Config::deleteSystemValue('share_folder'); }
/** * check if the parent folder exists otherwise move the mount point up * * @param \OCP\Share\IShare $share * @param SharedMount[] $mountpoints * @return string */ private function verifyMountPoint(\OCP\Share\IShare $share, array $mountpoints) { $mountPoint = basename($share->getTarget()); $parent = dirname($share->getTarget()); if (!$this->recipientView->is_dir($parent)) { $parent = Helper::getShareFolder(); } $newMountPoint = $this->generateUniqueTarget(\OC\Files\Filesystem::normalizePath($parent . '/' . $mountPoint), $this->recipientView, $mountpoints); if ($newMountPoint !== $share->getTarget()) { $this->updateFileTarget($newMountPoint, $share); } return $newMountPoint; }
/** * check if the parent folder exists otherwise move the mount point up * * @param array $share * @return string */ private function verifyMountPoint(&$share) { $mountPoint = basename($share['file_target']); $parent = dirname($share['file_target']); if (!$this->recipientView->is_dir($parent)) { $parent = Helper::getShareFolder(); } $newMountPoint = \OCA\Files_Sharing\Helper::generateUniqueTarget(\OC\Files\Filesystem::normalizePath($parent . '/' . $mountPoint), [], $this->recipientView); if ($newMountPoint !== $share['file_target']) { $this->updateFileTarget($newMountPoint, $share); $share['file_target'] = $newMountPoint; $share['unique_name'] = true; } return $newMountPoint; }
/** * check if the parent folder exists otherwise move the mount point up */ private function verifyMountPoint(&$share, $user) { $mountPoint = basename($share['file_target']); $parent = dirname($share['file_target']); if (!\OC\Files\Filesystem::is_dir($parent)) { $parent = Helper::getShareFolder(); } $newMountPoint = \OCA\Files_Sharing\Helper::generateUniqueTarget(\OC\Files\Filesystem::normalizePath($parent . '/' . $mountPoint), array(), new \OC\Files\View('/' . $user . '/files')); if ($newMountPoint !== $share['file_target']) { self::updateFileTarget($newMountPoint, $share); $share['file_target'] = $newMountPoint; $share['unique_name'] = true; } return $newMountPoint; }