All webdav endpoints within remote.php are now hardcoded - helps to prevent migration issues like #23610 - furthermore there is no need to dynamically lookup all the endpoints we already know

This commit is contained in:
Thomas Müller 2016-04-05 09:59:43 +02:00
parent 961bb4c3e3
commit 7bdde98617
2 changed files with 22 additions and 12 deletions

View File

@ -10,17 +10,6 @@
<types> <types>
<filesystem/> <filesystem/>
</types> </types>
<remote>
<files>appinfo/v1/webdav.php</files>
<webdav>appinfo/v1/webdav.php</webdav>
<dav>appinfo/v2/remote.php</dav>
<!-- carddav endpoints as used before ownCloud 9.0 -->
<contacts>appinfo/v1/carddav.php</contacts>
<carddav>appinfo/v1/carddav.php</carddav>
<!-- caldav endpoints as used before ownCloud 9.0 -->
<calendar>appinfo/v1/caldav.php</calendar>
<caldav>appinfo/v1/caldav.php</caldav>
</remote>
<public> <public>
<webdav>appinfo/v1/publicwebdav.php</webdav> <webdav>appinfo/v1/publicwebdav.php</webdav>
</public> </public>

View File

@ -84,6 +84,27 @@ function handleException(Exception $e) {
} }
} }
/**
* @param $service
* @return string
*/
function resolveService($service) {
$services = [
'webdav' => 'dav/appinfo/v1/webdav.php',
'dav' => 'dav/appinfo/v2/remote.php',
'caldav' => 'dav/appinfo/v1/caldav.php',
'calendar' => 'dav/appinfo/v1/caldav.php',
'carddav' => 'dav/appinfo/v1/carddav.php',
'contacts' => 'dav/appinfo/v1/carddav.php',
'files' => 'dav/appinfo/v1/webdav.php',
];
if (isset($services[$service])) {
return $services[$service];
}
return \OC::$server->getConfig()->getAppValue('core', 'remote_' . $service);
}
try { try {
require_once 'lib/base.php'; require_once 'lib/base.php';
@ -103,7 +124,7 @@ try {
} }
$service=substr($pathInfo, 1, $pos-1); $service=substr($pathInfo, 1, $pos-1);
$file = \OC::$server->getConfig()->getAppValue('core', 'remote_' . $service); $file = resolveService($service);
if(is_null($file)) { if(is_null($file)) {
throw new RemoteException('Path not found', OC_Response::STATUS_NOT_FOUND); throw new RemoteException('Path not found', OC_Response::STATUS_NOT_FOUND);