/** * @return AjxpWebdavProvider * @throws ezcBaseFileNotFoundException */ protected function getAccessDriver() { if (!isset($this->accessDriver)) { $confDriver = ConfService::getConfStorageImpl(); $this->accessDriver = ConfService::loadRepositoryDriver(); if (!$this->accessDriver instanceof AjxpWebdavProvider) { throw new ezcBaseFileNotFoundException($this->repository->getUniqueId()); } $wrapperData = $this->accessDriver->detectStreamWrapper(true); $this->wrapperClassName = $wrapperData["classname"]; } return $this->accessDriver; }
/** * Store a newly created repository * * @param Repository $repositoryObject * @param Boolean $update * @return -1 if failed */ function saveRepository($repositoryObject, $update = false) { $repositories = Utils::loadSerialFile($this->repoSerialFile); if (!$update) { $repositoryObject->writeable = true; $repositories[$repositoryObject->getUniqueId()] = $repositoryObject; } else { foreach ($repositories as $index => $repo) { if ($repo->getUniqueId() == $repositoryObject->getUniqueId()) { $repositories[$index] = $repositoryObject; break; } } } $res = Utils::saveSerialFile($this->repoSerialFile, $repositories); if ($res == -1) { return $res; } }
/** * Store a newly created repository * * @param Repository $repositoryObject * @param Boolean $update * @return -1 if failed */ public function saveRepository($repositoryObject, $update = false) { $repositories = AJXP_Utils::loadSerialFile($this->repoSerialFile); if (!$update) { $repositoryObject->writeable = true; $repositories[$repositoryObject->getUniqueId()] = $repositoryObject; } else { foreach ($repositories as $index => $repo) { if ($repo->getUniqueId() == $repositoryObject->getUniqueId()) { $repositories[$index] = $repositoryObject; break; } } } try { AJXP_Utils::saveSerialFile($this->repoSerialFile, $repositories); } catch (Exception $e) { return -1; } $this->updateAliasesIndex($repositoryObject->getUniqueId(), $repositoryObject->getSlug()); }
/** * Store a newly created repository * * @param Repository $repositoryObject * @param Boolean $update * @return int -1 if failed */ public function saveRepository($repositoryObject, $update = false) { try { if ($update) { $repositoryObject->setSlug($this->uniquifySlug($repositoryObject->getSlug(), $repositoryObject->getUniqueId())); } else { $repositoryObject->setSlug($this->uniquifySlug($repositoryObject->getSlug())); } $repository_array = $this->repoToArray($repositoryObject); $options = $repository_array['options']; if ($repositoryObject->hasContentFilter()) { $options["content_filter"] = $repositoryObject->getContentFilter(); } unset($repository_array['options']); if (!$update) { dibi::query('INSERT INTO [ajxp_repo]', $repository_array); foreach ($options as $k => $v) { if (!is_string($v)) { $v = '$phpserial$' . serialize($v); } dibi::query('INSERT INTO [ajxp_repo_options] ([uuid],[name],[val]) VALUES (%s,%s,%bin)', $repositoryObject->getUniqueId(), $k, $v); } } else { dibi::query('DELETE FROM [ajxp_repo] WHERE [uuid] = %s', $repositoryObject->getUniqueId()); dibi::query('DELETE FROM [ajxp_repo_options] WHERE [uuid] = %s', $repositoryObject->getUniqueId()); dibi::query('INSERT INTO [ajxp_repo]', $repository_array); foreach ($options as $k => $v) { if (!is_string($v)) { $v = '$phpserial$' . serialize($v); } dibi::query('INSERT INTO [ajxp_repo_options] ([uuid],[name],[val]) VALUES (%s,%s,%bin)', $repositoryObject->getUniqueId(), $k, $v); } } } catch (DibiException $e) { echo get_class($e), ': ', $e->getMessage(), "\n"; exit(1); return -1; } }
/** * @param $label * @param Repository|null $editingRepo * @return bool */ protected function checkRepoWithSameLabel($label, $editingRepo = null) { if ($this->getFilteredOption("AVOID_SHARED_FOLDER_SAME_LABEL", $this->repository) == true) { $count = 0; $similarLabelRepos = ConfService::listRepositoriesWithCriteria(array("display" => $label), $count); if ($count && !isset($editingRepo)) { return true; } if ($count && isset($editingRepo)) { foreach ($similarLabelRepos as $slr) { if ($slr->getUniqueId() != $editingRepo->getUniqueId()) { return true; } } } } return false; }