From c6c029228d772c988a61b1bbacffd7687fef4dc3 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Sun, 22 Sep 2013 20:06:10 +0200 Subject: [PATCH] Permit administrator to disable WebDAV on individual repositories. This is necessary for repositories that depend on session credentials because clients such as Windows default WebDAV do not use sessions. --- .../sabredav/ajaxplorer/class.AJXP_Sabre_RootCollection.php | 2 +- core/src/plugins/core.ajaxplorer/ajxp_mixins.xml | 2 +- core/src/plugins/core.conf/class.AbstractConfDriver.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/core/classes/sabredav/ajaxplorer/class.AJXP_Sabre_RootCollection.php b/core/src/core/classes/sabredav/ajaxplorer/class.AJXP_Sabre_RootCollection.php index 7ac89e1b10..5f2e96d8ed 100755 --- a/core/src/core/classes/sabredav/ajaxplorer/class.AJXP_Sabre_RootCollection.php +++ b/core/src/core/classes/sabredav/ajaxplorer/class.AJXP_Sabre_RootCollection.php @@ -37,7 +37,7 @@ function getChildren(){ foreach($repos as $repository){ $accessType = $repository->getAccessType(); $driver = AJXP_PluginsService::getInstance()->getPluginByTypeName("access", $accessType); - if(is_a($driver, "AjxpWrapperProvider")){ + if (is_a($driver, "AjxpWrapperProvider") && !$repository->getOption("AJXP_WEBDAV_DISABLED")) { $this->children[$repository->getSlug()] = new Sabre\DAV\SimpleCollection($repository->getSlug()); } } diff --git a/core/src/plugins/core.ajaxplorer/ajxp_mixins.xml b/core/src/plugins/core.ajaxplorer/ajxp_mixins.xml index fbc70dd302..82b6b36765 100644 --- a/core/src/plugins/core.ajaxplorer/ajxp_mixins.xml +++ b/core/src/plugins/core.ajaxplorer/ajxp_mixins.xml @@ -15,7 +15,7 @@ - + diff --git a/core/src/plugins/core.conf/class.AbstractConfDriver.php b/core/src/plugins/core.conf/class.AbstractConfDriver.php index 093c9cdf8d..1c415071ad 100644 --- a/core/src/plugins/core.conf/class.AbstractConfDriver.php +++ b/core/src/plugins/core.conf/class.AbstractConfDriver.php @@ -637,7 +637,7 @@ function switchAction($action, $httpVars, $fileVars) foreach($repoList as $repoIndex => $repoObject){ $accessType = $repoObject->getAccessType(); $driver = AJXP_PluginsService::getInstance()->getPluginByTypeName("access", $accessType); - if(is_a($driver, "AjxpWrapperProvider") && ($loggedUser->canRead($repoIndex) || $loggedUser->canWrite($repoIndex))){ + if (is_a($driver, "AjxpWrapperProvider") && !$repoObject->getOption("AJXP_WEBDAV_DISABLED") && ($loggedUser->canRead($repoIndex) || $loggedUser->canWrite($repoIndex))) { $davRepos[$repoIndex] = $webdavBaseUrl ."".($repoObject->getSlug()==null?$repoObject->getId():$repoObject->getSlug()); } }