From 4f042aa071fae11a5e8b1f0caf927a2ba048e37e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 6 Jul 2022 15:58:26 +0200 Subject: [PATCH 1/3] Wire up the search service at the old webdav endpoint --- services/proxy/pkg/config/defaults/defaultconfig.go | 13 +++++++++---- services/webdav/pkg/service/v0/service.go | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/services/proxy/pkg/config/defaults/defaultconfig.go b/services/proxy/pkg/config/defaults/defaultconfig.go index 566373002a..962f185352 100644 --- a/services/proxy/pkg/config/defaults/defaultconfig.go +++ b/services/proxy/pkg/config/defaults/defaultconfig.go @@ -97,15 +97,20 @@ func DefaultPolicies() []config.Policy { Endpoint: "/remote.php/?preview=1", Backend: "http://localhost:9115", }, + // TODO the actual REPORT goes to /dav/files/{username}, which is user specific ... how would this work in a spaces world? + // TODO what paths are returned? the href contains the full path so it should be possible to return urls from other spaces? + // TODO or we allow a REPORT on /dav/spaces to search all spaces and /dav/space/{spaceid} to search a specific space + // send webdav REPORT requests to search service { - // TODO the actual REPORT goes to /dav/files/{username}, which is user specific ... how would this work in a spaces world? - // TODO what paths are returned? the href contains the full path so it should be possible to return urls from other spaces? - // TODO or we allow a REPORT on /dav/spaces to search all spaces and /dav/space/{spaceid} to search a specific space - // send webdav REPORT requests to search service Method: "REPORT", Endpoint: "/remote.php/dav/", Backend: "http://localhost:9115", // TODO use registry? }, + { + Method: "REPORT", + Endpoint: "/remote.php/webdav", + Backend: "http://localhost:9115", // TODO use registry? + }, { Type: config.QueryRoute, Endpoint: "/dav/?preview=1", diff --git a/services/webdav/pkg/service/v0/service.go b/services/webdav/pkg/service/v0/service.go index 89f60fe583..52190901fb 100644 --- a/services/webdav/pkg/service/v0/service.go +++ b/services/webdav/pkg/service/v0/service.go @@ -113,7 +113,8 @@ func NewService(opts ...Option) (Service, error) { // back to using `chi.RegisterMethod`. m.MethodNotAllowed(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { routePrefix := path.Join(options.Config.HTTP.Root, "/remote.php/dav/files/") - if req.Method == "REPORT" && strings.HasPrefix(req.URL.Path, routePrefix) { + legacyRoutePrefix := path.Join(options.Config.HTTP.Root, "/remote.php/webdav") + if req.Method == "REPORT" && (strings.HasPrefix(req.URL.Path, routePrefix) || strings.HasPrefix(req.URL.Path, legacyRoutePrefix)) { // The URLParam will not be available here. If it is needed it // needs to be passed manually or chi needs to be fixed // To use it properly. From 57d625ccf13846a0ffa7d7f2211f20aa84a73b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 6 Jul 2022 16:01:21 +0200 Subject: [PATCH 2/3] Add changelog --- changelog/unreleased/webdav-search.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/unreleased/webdav-search.md diff --git a/changelog/unreleased/webdav-search.md b/changelog/unreleased/webdav-search.md new file mode 100644 index 0000000000..af8f69e117 --- /dev/null +++ b/changelog/unreleased/webdav-search.md @@ -0,0 +1,5 @@ +Enhancement: Search service at the old webdav endpoint + +We made the search service available for legacy clients at the old webdav endpoint. + +https://github.com/owncloud/ocis/pull/4118 From d65dcfe901e8b75bc0c2c33c492af71ccd8a80cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 6 Jul 2022 22:00:10 +0200 Subject: [PATCH 3/3] Adapt expected failures --- tests/acceptance/expected-failures-API-on-OCIS-storage.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/acceptance/expected-failures-API-on-OCIS-storage.md b/tests/acceptance/expected-failures-API-on-OCIS-storage.md index cc9d42b968..2f46014230 100644 --- a/tests/acceptance/expected-failures-API-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-API-on-OCIS-storage.md @@ -944,25 +944,19 @@ _ocdav: api compatibility, return correct status code_ #### [/webdav and spaces endpoint does not alloow REPORT requests](https://github.com/owncloud/ocis/issues/4034) -- [apiWebdavOperations/search.feature:42](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L42) - [apiWebdavOperations/search.feature:48](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L48) -- [apiWebdavOperations/search.feature:64](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L64) - [apiWebdavOperations/search.feature:70](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L70) -- [apiWebdavOperations/search.feature:87](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L87) - [apiWebdavOperations/search.feature:93](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L93) -- [apiWebdavOperations/search.feature:102](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L102) - [apiWebdavOperations/search.feature:108](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L108) - [apiWebdavOperations/search.feature:126](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L126) - [apiWebdavOperations/search.feature:132](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L132) - [apiWebdavOperations/search.feature:150](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L150) - [apiWebdavOperations/search.feature:156](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L156) -- [apiWebdavOperations/search.feature:174](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L174) - [apiWebdavOperations/search.feature:180](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L180) - [apiWebdavOperations/search.feature:207](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L207) - [apiWebdavOperations/search.feature:213](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L213) - [apiWebdavOperations/search.feature:239](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L239) - [apiWebdavOperations/search.feature:245](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L245) -- [apiWebdavOperations/search.feature:264](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L264) - [apiWebdavOperations/search.feature:270](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavOperations/search.feature#L270) ### [No permisions propertry in response while searching for files and folders on ocis with new webdav](https://github.com/owncloud/ocis/issues/4009)