From e0dfa1fdc25958812af64d95e04671f133924d65 Mon Sep 17 00:00:00 2001 From: Giuseppe Lo Presti Date: Thu, 25 Nov 2021 17:09:43 +0100 Subject: [PATCH 1/2] On /app/new, make sure target is absolute --- internal/http/services/appprovider/appprovider.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/http/services/appprovider/appprovider.go b/internal/http/services/appprovider/appprovider.go index 52a1754532..9795b1302e 100644 --- a/internal/http/services/appprovider/appprovider.go +++ b/internal/http/services/appprovider/appprovider.go @@ -153,6 +153,13 @@ func (s *svc) handleNew(w http.ResponseWriter, r *http.Request) { return } + // TODO(lopresti) if target is relative, currently the gateway fails to identify a storage provider (?) + // and just returns a CODE_INTERNAL error on InitiateFileUpload. + // Therefore for now make sure the target is absolute. + if target[0] != '/' { + target = "/" + target + } + // Create empty file via storageprovider createReq := &provider.InitiateFileUploadRequest{ Ref: &provider.Reference{Path: target}, From 8ccff7005ca706b8d9406f017577434355550c39 Mon Sep 17 00:00:00 2001 From: Giuseppe Lo Presti Date: Thu, 25 Nov 2021 17:09:54 +0100 Subject: [PATCH 2/2] Cosmetic change --- changelog/unreleased/app-abspath.md | 5 +++++ internal/http/services/ocmd/reqres.go | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 changelog/unreleased/app-abspath.md diff --git a/changelog/unreleased/app-abspath.md b/changelog/unreleased/app-abspath.md new file mode 100644 index 0000000000..551576e9dd --- /dev/null +++ b/changelog/unreleased/app-abspath.md @@ -0,0 +1,5 @@ +Bugfix: Make sure /app/new takes `target` as absolute path + +A mini-PR to make the `target` parameter absolute (by prepending `/` if missing). + +https://github.com/cs3org/reva/pull/2305 diff --git a/internal/http/services/ocmd/reqres.go b/internal/http/services/ocmd/reqres.go index ac81567371..d37824a8fc 100644 --- a/internal/http/services/ocmd/reqres.go +++ b/internal/http/services/ocmd/reqres.go @@ -57,12 +57,13 @@ type APIError struct { } // WriteError handles writing error responses -func WriteError(w http.ResponseWriter, r *http.Request, code APIErrorCode, message string, err error) { - if err != nil { - appctx.GetLogger(r.Context()).Error().Err(err).Msg(message) +func WriteError(w http.ResponseWriter, r *http.Request, code APIErrorCode, message string, e error) { + if e != nil { + appctx.GetLogger(r.Context()).Error().Err(e).Msg(message) } var encoded []byte + var err error w.Header().Set("Content-Type", "application/json") encoded, err = json.MarshalIndent(APIError{Code: code, Message: message}, "", " ")