コード例 #1
0
 /**
  * @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;
 }
コード例 #2
0
 /**
  * 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;
     }
 }
コード例 #3
0
 /**
  * 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());
 }
コード例 #4
0
 /**
  * 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;
     }
 }
コード例 #5
0
 /**
  * @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;
 }