From 3ca5c9531678ed074cf25e2afe70033517824332 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 22 Jul 2021 16:57:47 +0200 Subject: [PATCH] fix response when listing another user's file versions --- changelog/unreleased/response-list-version.md | 5 +++++ internal/http/services/owncloud/ocdav/versions.go | 11 +++++++++++ tests/acceptance/expected-failures-on-OCIS-storage.md | 1 - .../expected-failures-on-OWNCLOUD-storage.md | 1 - tests/acceptance/expected-failures-on-S3NG-storage.md | 2 -- 5 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 changelog/unreleased/response-list-version.md diff --git a/changelog/unreleased/response-list-version.md b/changelog/unreleased/response-list-version.md new file mode 100644 index 00000000000..295c504fa1f --- /dev/null +++ b/changelog/unreleased/response-list-version.md @@ -0,0 +1,5 @@ +Bugfix: Fix response when listing versions of another user + +The OCS API returned the wrong response when a user tried to list the versions of another user's file. + +https://github.com/cs3org/reva/pull/1912 diff --git a/internal/http/services/owncloud/ocdav/versions.go b/internal/http/services/owncloud/ocdav/versions.go index a1e7e19162d..850657e86b1 100644 --- a/internal/http/services/owncloud/ocdav/versions.go +++ b/internal/http/services/owncloud/ocdav/versions.go @@ -20,6 +20,7 @@ package ocdav import ( "context" + "fmt" "net/http" "path" @@ -107,6 +108,15 @@ func (h *VersionsHandler) doListVersions(w http.ResponseWriter, r *http.Request, return } if res.Status.Code != rpc.Code_CODE_OK { + if res.Status.Code == rpc.Code_CODE_PERMISSION_DENIED { + w.WriteHeader(http.StatusNotFound) + b, err := Marshal(exception{ + code: SabredavNotFound, + message: "Resource not found", + }) + HandleWebdavError(&sublog, w, b, err) + return + } HandleErrorStatus(&sublog, w, res.Status) return } @@ -120,6 +130,7 @@ func (h *VersionsHandler) doListVersions(w http.ResponseWriter, r *http.Request, return } if lvRes.Status.Code != rpc.Code_CODE_OK { + fmt.Printf("\n\n status %v \n\n", lvRes.Status) HandleErrorStatus(&sublog, w, lvRes.Status) return } diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.md b/tests/acceptance/expected-failures-on-OCIS-storage.md index 7261dc535f6..9f7062760ee 100644 --- a/tests/acceptance/expected-failures-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-on-OCIS-storage.md @@ -36,7 +36,6 @@ Basic file management like up and download, move, copy, properties, quota, trash - [apiVersions/fileVersions.feature:89](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L89) - [apiVersions/fileVersions.feature:93](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L93) - [apiVersions/fileVersions.feature:276](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L276) -- [apiVersions/fileVersions.feature:347](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L347) #### [upload a file using TUS resource URL as an other user should not work](https://github.com/owncloud/ocis/issues/1141) - [apiWebdavUploadTUS/uploadFile.feature:165](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavUploadTUS/uploadFile.feature#L165) diff --git a/tests/acceptance/expected-failures-on-OWNCLOUD-storage.md b/tests/acceptance/expected-failures-on-OWNCLOUD-storage.md index 0ea66c7149f..7b8e03001da 100644 --- a/tests/acceptance/expected-failures-on-OWNCLOUD-storage.md +++ b/tests/acceptance/expected-failures-on-OWNCLOUD-storage.md @@ -60,7 +60,6 @@ The following scenarios fail on OWNCLOUD storage but not on OCIS storage: - [apiVersions/fileVersions.feature:89](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L89) - [apiVersions/fileVersions.feature:93](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L93) - [apiVersions/fileVersions.feature:276](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L276) -- [apiVersions/fileVersions.feature:347](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L347) The following scenarios fail on OWNCLOUD storage but not on OCIS storage: diff --git a/tests/acceptance/expected-failures-on-S3NG-storage.md b/tests/acceptance/expected-failures-on-S3NG-storage.md index fb7635f6618..c053567da16 100644 --- a/tests/acceptance/expected-failures-on-S3NG-storage.md +++ b/tests/acceptance/expected-failures-on-S3NG-storage.md @@ -41,8 +41,6 @@ Basic file management like up and download, move, copy, properties, quota, trash - [apiVersions/fileVersions.feature:89](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L89) - [apiVersions/fileVersions.feature:93](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L93) - [apiVersions/fileVersions.feature:276](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L276) -- [apiVersions/fileVersions.feature:347](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiVersions/fileVersions.feature#L347) - #### [upload a file using TUS resource URL as an other user should not work](https://github.com/owncloud/ocis/issues/1141) - [apiWebdavUploadTUS/uploadFile.feature:165](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavUploadTUS/uploadFile.feature#L155)