From 6f8f60371f291aa1c1b3b3520b5cecef151f91fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 20 Nov 2024 08:58:28 +0100 Subject: [PATCH 1/3] Handle permission denied errors when touching the new file Co-authored-by: Christian Richter --- internal/http/services/appprovider/appprovider.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/http/services/appprovider/appprovider.go b/internal/http/services/appprovider/appprovider.go index 9d93b18621..1ad71290cf 100644 --- a/internal/http/services/appprovider/appprovider.go +++ b/internal/http/services/appprovider/appprovider.go @@ -237,6 +237,10 @@ func (s *svc) handleNew(w http.ResponseWriter, r *http.Request) { } if touchRes.Status.Code != rpc.Code_CODE_OK { + if touchRes.Status.Code == rpc.Code_CODE_PERMISSION_DENIED { + writeError(w, r, appErrorPermissionDenied, "touching the file failed", nil) + return + } writeError(w, r, appErrorServerError, "touching the file failed", nil) return } From cc41e7badff3b48ba9c30579d75f9395f6dc5b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 20 Nov 2024 10:38:23 +0100 Subject: [PATCH 2/3] Add changelog --- changelog/unreleased/fix-approvider-error.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelog/unreleased/fix-approvider-error.md diff --git a/changelog/unreleased/fix-approvider-error.md b/changelog/unreleased/fix-approvider-error.md new file mode 100644 index 0000000000..ec65f93ec5 --- /dev/null +++ b/changelog/unreleased/fix-approvider-error.md @@ -0,0 +1,5 @@ +Bugfix: Fix a wrong error code when approvider creates a new file + +We fixed a problem where the approvider would return a 500 error instead of 403 when trying to create a new file in a read-only share. + +https://github.com/cs3org/reva/pull/4964 From 336e87125c68fbfbd9ba840cb386dc4f32771536 Mon Sep 17 00:00:00 2001 From: Christian Richter <1058116+dragonchaser@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:59:06 +0100 Subject: [PATCH 3/3] Update internal/http/services/appprovider/appprovider.go --- internal/http/services/appprovider/appprovider.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/http/services/appprovider/appprovider.go b/internal/http/services/appprovider/appprovider.go index 1ad71290cf..c434eb6cdc 100644 --- a/internal/http/services/appprovider/appprovider.go +++ b/internal/http/services/appprovider/appprovider.go @@ -238,7 +238,7 @@ func (s *svc) handleNew(w http.ResponseWriter, r *http.Request) { if touchRes.Status.Code != rpc.Code_CODE_OK { if touchRes.Status.Code == rpc.Code_CODE_PERMISSION_DENIED { - writeError(w, r, appErrorPermissionDenied, "touching the file failed", nil) + writeError(w, r, appErrorPermissionDenied, "permission denied to create the file", nil) return } writeError(w, r, appErrorServerError, "touching the file failed", nil)