/** * @param $websiteId */ public function deleteByWebsiteId($websiteId) { $sources = $this->getLocalSources($websiteId); foreach ($sources as $sourceItem) { $sourceItemDirectory = $sourceItem->getDirectory(); if (!empty($sourceItemDirectory) && file_exists($sourceItemDirectory)) { FS::rmdir($sourceItemDirectory); } } $this->getDao()->resetCache(); }
/** * @test * @group library */ public function test_createStorageForWebsite_success() { // ARRANGE $dao = $this->createModuleDao(true); $websiteId = $this->newWebsiteId; $expectedModuleDataDirectory = FS::joinPath(Registry::getConfig()->item->data->directory, $websiteId, $dao::SUBDIR_MODULES); FS::rmdir($expectedModuleDataDirectory); $this->assertFileNotExists($expectedModuleDataDirectory); // ACT $dao->createStorageForWebsite($this->newWebsiteId); // ASSERT $this->assertFileExists($expectedModuleDataDirectory); }
/** * @param string $websiteId */ public function deleteByWebsiteId($websiteId) { $websiteModulesDataDir = $this->getWebsiteModulesDataDirectory($websiteId); if (!empty($websiteModulesDataDir) && is_dir($websiteModulesDataDir) && strpos($websiteModulesDataDir, $this->dataDirectory) === 0) { FS::rmdir($websiteModulesDataDir); } $this->resetCache(); }
/** * @param string $websiteId * @param bool $checkConflict * @param array $overwriteIds * * @return array */ protected function importPackages($websiteId, $checkConflict = false, array $overwriteIds = array()) { $importedPackages = array(); $conflictingPackageIds = array(); $packageService = $this->getPackageService(); if ($checkConflict && isset($this->currentConflictItems['packages'])) { $conflictingPackageIds = array_keys($this->currentConflictItems['packages']); } foreach ($this->currentImportPackageInfo as $packageId => $packageInfo) { // check if import of the package is allowed if (!$this->itemImportAllowed($packageId, $conflictingPackageIds, $overwriteIds)) { continue; } $localDirectory = $packageService->getDirectoryFormImportingLocalPackages($websiteId); $localPackageDirectory = FS::joinPath($localDirectory, $packageId); if (file_exists($localPackageDirectory)) { FS::rmdir($localPackageDirectory); } FS::createDirIfNotExists($localPackageDirectory, true); FS::copyDir($packageInfo['directory'], $localPackageDirectory); $importedPackages[] = array('id' => $packageId, 'name' => $packageInfo['name']); } // ensure that the imported packages will be (re)loaded $packageService->resetCache(); return $importedPackages; }
/** * @param string $id */ private function deleteWebsiteDirectories($id) { $itemDataDirectory = realpath(FS::joinPath(Registry::getConfig()->item->data->directory, $id)); if (!empty($itemDataDirectory) && is_dir($itemDataDirectory)) { try { FS::rmdir($itemDataDirectory); } catch (\Exception $logOnly) { Registry::getLogger()->log(__METHOD__, __LINE__, $logOnly->getMessage(), SbLog::ERR); } } }
/** * @param string $websiteId * * @return boolean */ private function removeCreatedWebsiteDirectory($websiteId) { try { $websiteCreatorDirectory = $this->getLastCreatorDirectory(); if (realpath($websiteCreatorDirectory)) { FS::rmdir($websiteCreatorDirectory); } } catch (\Exception $e) { $errorMessage = sprintf("Unable to remove last creator directory '%s' (%s)", $websiteCreatorDirectory, $e->getMessage()); Registry::getLogger()->log(__METHOD__, __LINE__, $errorMessage, Log::ERR); } }
protected function deleteExportDirectories() { if (!$this->checkCurrentExportDirectory()) { return; } $iterator = new \DirectoryIterator($this->currentExportDirectory); foreach ($iterator as $fileInfo) { if ($fileInfo->isDot()) { continue; } if ($fileInfo->getExtension() == self::EXPORT_FILE_EXTENSION) { continue; } $pathName = $fileInfo->getPathName(); if (!strstr($pathName, $this->currentExportDirectory)) { continue; } FS::rmdir($pathName); } }
/** * @param string $liveDirectory * @param string $srcDirectory * @param array $writeableDirectories * @param array $cacheDirectories * @param string $subDirectory * * @throws CmsException */ protected function updateLive($liveDirectory, $srcDirectory, $writeableDirectories, $cacheDirectories, $subDirectory = '') { if (!is_dir($srcDirectory)) { throw new CmsException(902, __METHOD__, __LINE__, array('msg' => sprintf('source directory %s not exists', $srcDirectory))); } // create live directory if (!is_dir($liveDirectory)) { FS::createDirIfNotExists($liveDirectory, true, 0755); } // set directory rights if (!empty($subDirectory) && $this->isInsideDirectory($subDirectory, $writeableDirectories)) { // writeable FS::chmod($liveDirectory, 0777); } else { FS::chmod($liveDirectory, 0755); } // get info of the directories $liveDirInfo = $this->getDirectoryAsArray($liveDirectory); $srcDirInfo = $this->getDirectoryAsArray($srcDirectory); // delete live directories foreach ($liveDirInfo['directories'] as $liveSubDirectoryName => $liveSubDirectory) { if ($this->isInsideDirectory($subDirectory . $liveSubDirectoryName, $writeableDirectories)) { FS::chmod($liveSubDirectory, 0777); continue; } if (!isset($srcDirInfo['directories'][$liveSubDirectoryName])) { FS::rmdir($liveDirectory); } } // delete live files foreach ($liveDirInfo['files'] as $liveFileName => $liveFilePathName) { if ($this->isInsideDirectory($subDirectory . $liveFileName, $writeableDirectories)) { FS::chmod($liveFilePathName, 0777); continue; } if (!isset($srcDirInfo['files'][$liveFileName])) { FS::rmFile($liveFilePathName); } } // copy source directories foreach ($srcDirInfo['directories'] as $srcSubDirectoryName => $srcSubDirectory) { $subDirPathName = $subDirectory . $srcSubDirectoryName . DIRECTORY_SEPARATOR; $newLiveDirectory = FS::joinPath($liveDirectory, $srcSubDirectoryName); $this->updateLive($newLiveDirectory, $srcSubDirectory, $writeableDirectories, $cacheDirectories, $subDirPathName); } // copy source files foreach ($srcDirInfo['files'] as $srcFileName => $srcFilePathName) { $newLiveFilePathName = FS::joinPath($liveDirectory, $srcFileName); FS::copyFile($srcFilePathName, $newLiveFilePathName); if ($this->isInsideDirectory($subDirectory . $srcFileName, $writeableDirectories)) { FS::chmod($newLiveFilePathName, 0777); } else { FS::chmod($newLiveFilePathName, 0755); } } }