From 860afc00491f97454db385a210f1df4b7ba5e573 Mon Sep 17 00:00:00 2001 From: jkoberg Date: Fri, 27 Oct 2023 16:28:31 +0200 Subject: [PATCH] bump reva Signed-off-by: jkoberg --- changelog/unreleased/bump-reva.md | 1 + go.mod | 2 +- go.sum | 4 +-- .../http/services/owncloud/ocdav/locks.go | 9 ++++-- .../handlers/apps/sharing/shares/pending.go | 22 ++++++++++++-- .../storage/utils/decomposedfs/node/locks.go | 30 ++----------------- vendor/modules.txt | 2 +- 7 files changed, 33 insertions(+), 37 deletions(-) diff --git a/changelog/unreleased/bump-reva.md b/changelog/unreleased/bump-reva.md index f5c95c707..fdee9f13f 100644 --- a/changelog/unreleased/bump-reva.md +++ b/changelog/unreleased/bump-reva.md @@ -2,6 +2,7 @@ Enhancement: Bump Reva bumps reva version +https://github.com/owncloud/ocis/pull/7611 https://github.com/owncloud/ocis/pull/7540 https://github.com/owncloud/ocis/pull/7526 https://github.com/owncloud/ocis/pull/7138 diff --git a/go.mod b/go.mod index c72e32fbd..ae5cb159b 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/coreos/go-oidc v2.2.1+incompatible github.com/coreos/go-oidc/v3 v3.7.0 github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781 - github.com/cs3org/reva/v2 v2.16.1-0.20231026150523-04eb8f6acc8b + github.com/cs3org/reva/v2 v2.16.1-0.20231027142631-05d1fffaa03e github.com/disintegration/imaging v1.6.2 github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e github.com/egirna/icap-client v0.1.1 diff --git a/go.sum b/go.sum index 0a42302ae..9c6d75cb6 100644 --- a/go.sum +++ b/go.sum @@ -1013,8 +1013,8 @@ github.com/crewjam/saml v0.4.14 h1:g9FBNx62osKusnFzs3QTN5L9CVA/Egfgm+stJShzw/c= github.com/crewjam/saml v0.4.14/go.mod h1:UVSZCf18jJkk6GpWNVqcyQJMD5HsRugBPf4I1nl2mME= github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781 h1:BUdwkIlf8IS2FasrrPg8gGPHQPOrQ18MS1Oew2tmGtY= github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva/v2 v2.16.1-0.20231026150523-04eb8f6acc8b h1:AuScJNL7t6/oui68Eg7vlqUVVcyeQMsHvzuO+zgIn9k= -github.com/cs3org/reva/v2 v2.16.1-0.20231026150523-04eb8f6acc8b/go.mod h1:utPCNSrWDdAwz2biLrKvzO6nDH9L7vRVGNzof13r8Kw= +github.com/cs3org/reva/v2 v2.16.1-0.20231027142631-05d1fffaa03e h1:+Hlma3QvqLh6M4iS7Rvvd0HmBu6IQshlByt3T24Z1pI= +github.com/cs3org/reva/v2 v2.16.1-0.20231027142631-05d1fffaa03e/go.mod h1:utPCNSrWDdAwz2biLrKvzO6nDH9L7vRVGNzof13r8Kw= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/locks.go b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/locks.go index 43ca6dde6..b56b6c4d8 100644 --- a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/locks.go +++ b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/locks.go @@ -506,10 +506,15 @@ func (s *svc) lockReference(ctx context.Context, w http.ResponseWriter, r *http. // this actually is a name based lock ... ugh token, err = s.LockSystem.Create(ctx, now, ld) if err != nil { - if _, ok := err.(errtypes.Aborted); ok { + switch err.(type) { + case errtypes.Aborted: return http.StatusLocked, err + case errtypes.PermissionDenied: + return http.StatusForbidden, err + default: + return http.StatusInternalServerError, err + } - return http.StatusInternalServerError, err } defer func() { diff --git a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocs/handlers/apps/sharing/shares/pending.go b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocs/handlers/apps/sharing/shares/pending.go index b5fdf23c3..8709502c6 100644 --- a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocs/handlers/apps/sharing/shares/pending.go +++ b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocs/handlers/apps/sharing/shares/pending.go @@ -88,6 +88,7 @@ func (h *Handler) AcceptReceivedShare(w http.ResponseWriter, r *http.Request) { } } else { if s.State == collaboration.ShareState_SHARE_STATE_ACCEPTED { + s.Hidden = h.getReceivedShareHideFlagFromShareID(r.Context(), shareID) mountedShares = append(mountedShares, s) } } @@ -127,7 +128,8 @@ func (h *Handler) AcceptReceivedShare(w http.ResponseWriter, r *http.Request) { Share: &collaboration.Share{ Id: &collaboration.ShareId{OpaqueId: shareID}, }, - State: collaboration.ShareState_SHARE_STATE_ACCEPTED, + State: collaboration.ShareState_SHARE_STATE_ACCEPTED, + Hidden: h.getReceivedShareHideFlagFromShareID(r.Context(), shareID), MountPoint: &provider.Reference{ Path: mount, }, @@ -151,7 +153,8 @@ func (h *Handler) RejectReceivedShare(w http.ResponseWriter, r *http.Request) { Share: &collaboration.Share{ Id: &collaboration.ShareId{OpaqueId: shareID}, }, - State: collaboration.ShareState_SHARE_STATE_REJECTED, + State: collaboration.ShareState_SHARE_STATE_REJECTED, + Hidden: h.getReceivedShareHideFlagFromShareID(r.Context(), shareID), } updateMask := &fieldmaskpb.FieldMask{Paths: []string{"state", "hidden"}} @@ -238,7 +241,7 @@ func (h *Handler) updateReceivedShare(w http.ResponseWriter, r *http.Request, re } data.State = mapState(rs.GetState()) - data.Hidden = rs.Hidden + data.Hidden = rs.GetHidden() h.addFileInfo(ctx, data, info) h.mapUserIds(r.Context(), client, data) @@ -251,6 +254,19 @@ func (h *Handler) updateReceivedShare(w http.ResponseWriter, r *http.Request, re return data } +// getReceivedShareHideFlagFromShareId returns the hide flag of a received share based on its ID. +func (h *Handler) getReceivedShareHideFlagFromShareID(ctx context.Context, shareID string) bool { + client, err := h.getClient() + if err != nil { + return false + } + rs, _ := getReceivedShareFromID(ctx, client, shareID) + if rs != nil { + return rs.GetShare().GetHidden() + } + return false +} + // getReceivedShareFromID uses a client to the gateway to fetch a share based on its ID. func getReceivedShareFromID(ctx context.Context, client gateway.GatewayAPIClient, shareID string) (*collaboration.GetReceivedShareResponse, *response.Response) { s, err := client.GetReceivedShare(ctx, &collaboration.GetReceivedShareRequest{ diff --git a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node/locks.go b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node/locks.go index 65dafc0b2..b968ef3aa 100644 --- a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node/locks.go +++ b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node/locks.go @@ -276,38 +276,12 @@ func (n *Node) CheckLock(ctx context.Context) error { } func readLocksIntoOpaque(ctx context.Context, n *Node, ri *provider.ResourceInfo) error { - - // ensure parent path exists - if err := os.MkdirAll(filepath.Dir(n.InternalPath()), 0700); err != nil { - return errors.Wrap(err, "Decomposedfs: error creating parent folder for lock") - } - fileLock, err := filelocks.AcquireReadLock(n.InternalPath()) - + lock, err := n.ReadLock(ctx, false) if err != nil { + appctx.GetLogger(ctx).Error().Err(err).Msg("Decomposedfs: could not read lock") return err } - defer func() { - rerr := filelocks.ReleaseLock(fileLock) - - // if err is non nil we do not overwrite that - if err == nil { - err = rerr - } - }() - - f, err := os.Open(n.LockFilePath()) - if err != nil { - appctx.GetLogger(ctx).Error().Err(err).Msg("Decomposedfs: could not open lock file") - return err - } - defer f.Close() - - lock := &provider.Lock{} - if err := json.NewDecoder(f).Decode(lock); err != nil { - appctx.GetLogger(ctx).Error().Err(err).Msg("Decomposedfs: could not read lock file") - } - // reencode to ensure valid json var b []byte if b, err = json.Marshal(lock); err != nil { diff --git a/vendor/modules.txt b/vendor/modules.txt index 7f6682027..77745b7ce 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -357,7 +357,7 @@ github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1 github.com/cs3org/go-cs3apis/cs3/storage/registry/v1beta1 github.com/cs3org/go-cs3apis/cs3/tx/v1beta1 github.com/cs3org/go-cs3apis/cs3/types/v1beta1 -# github.com/cs3org/reva/v2 v2.16.1-0.20231026150523-04eb8f6acc8b +# github.com/cs3org/reva/v2 v2.16.1-0.20231027142631-05d1fffaa03e ## explicit; go 1.20 github.com/cs3org/reva/v2/cmd/revad/internal/grace github.com/cs3org/reva/v2/cmd/revad/runtime