From 4f479a55bfc091202bdca24dcc3f42c809044ada Mon Sep 17 00:00:00 2001 From: David Christofas Date: Fri, 26 Nov 2021 17:25:04 +0100 Subject: [PATCH] fix app provider for editor public links --- changelog/unreleased/fix-public-link-wopi.md | 7 +++++++ .../publicstorageprovider/publicstorageprovider.go | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/fix-public-link-wopi.md diff --git a/changelog/unreleased/fix-public-link-wopi.md b/changelog/unreleased/fix-public-link-wopi.md new file mode 100644 index 0000000000..c1b664f9e7 --- /dev/null +++ b/changelog/unreleased/fix-public-link-wopi.md @@ -0,0 +1,7 @@ +Bugfix: Fix app provider for editor public links + +Fixed opening the app provider in public links with the editor permission. +The app provider failed to open the file in read write mode. + +https://github.com/owncloud/ocis/issues/2803 +https://github.com/cs3org/reva/pull/2310 diff --git a/internal/grpc/services/publicstorageprovider/publicstorageprovider.go b/internal/grpc/services/publicstorageprovider/publicstorageprovider.go index 148e86eb02..c6ec4e983e 100644 --- a/internal/grpc/services/publicstorageprovider/publicstorageprovider.go +++ b/internal/grpc/services/publicstorageprovider/publicstorageprovider.go @@ -108,7 +108,16 @@ func New(m map[string]interface{}, ss *grpc.Server) (rgrpc.Service, error) { } func (s *service) SetArbitraryMetadata(ctx context.Context, req *provider.SetArbitraryMetadataRequest) (*provider.SetArbitraryMetadataResponse, error) { - return nil, gstatus.Errorf(codes.Unimplemented, "method not implemented") + ref, _, _, st, err := s.translatePublicRefToCS3Ref(ctx, req.Ref) + switch { + case err != nil: + return nil, err + case st != nil: + return &provider.SetArbitraryMetadataResponse{ + Status: st, + }, nil + } + return s.gateway.SetArbitraryMetadata(ctx, &provider.SetArbitraryMetadataRequest{Opaque: req.Opaque, Ref: ref, ArbitraryMetadata: req.ArbitraryMetadata}) } func (s *service) UnsetArbitraryMetadata(ctx context.Context, req *provider.UnsetArbitraryMetadataRequest) (*provider.UnsetArbitraryMetadataResponse, error) {