diff --git a/changelog/unreleased/allow-update-ocm-shares.md b/changelog/unreleased/allow-update-ocm-shares.md index 9b11235199..d8019efdb6 100644 --- a/changelog/unreleased/allow-update-ocm-shares.md +++ b/changelog/unreleased/allow-update-ocm-shares.md @@ -2,5 +2,6 @@ Bugfix: Allow update of ocm shares We fixed a bug that prevented ocm shares to be updated or removed. +https://github.com/cs3org/reva/pull/4843/ https://github.com/cs3org/reva/pull/4840/ https://github.com/owncloud/ocis/issues/9926 \ No newline at end of file diff --git a/pkg/ocm/share/repository/json/json.go b/pkg/ocm/share/repository/json/json.go index 234b76553a..007022cd51 100644 --- a/pkg/ocm/share/repository/json/json.go +++ b/pkg/ocm/share/repository/json/json.go @@ -31,14 +31,15 @@ import ( ocm "github.com/cs3org/go-cs3apis/cs3/sharing/ocm/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" typespb "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" + "github.com/google/uuid" + "github.com/pkg/errors" + "google.golang.org/genproto/protobuf/field_mask" + "github.com/cs3org/reva/v2/pkg/errtypes" "github.com/cs3org/reva/v2/pkg/ocm/share" "github.com/cs3org/reva/v2/pkg/ocm/share/repository/registry" "github.com/cs3org/reva/v2/pkg/utils" "github.com/cs3org/reva/v2/pkg/utils/cfg" - "github.com/google/uuid" - "github.com/pkg/errors" - "google.golang.org/genproto/protobuf/field_mask" ) func init() { @@ -466,7 +467,17 @@ func (m *mgr) UpdateShare(ctx context.Context, user *userpb.User, ref *ocm.Share } } - return s, nil + clone, err := cloneShare(s) + if err != nil { + return nil, err + } + m.model.Shares[s.Id.OpaqueId] = clone + + if err := m.save(); err != nil { + return nil, errors.Wrap(err, "error saving share") + } + + return clone, nil } } }