From 7139e72ab4449adc3a0c90f6889abcb1fdcf13d7 Mon Sep 17 00:00:00 2001 From: jkoberg Date: Wed, 17 Apr 2024 11:40:48 +0200 Subject: [PATCH] fix(clientlog): unbonk rename logic Signed-off-by: jkoberg --- changelog/unreleased/sharing-sse.md | 1 + services/clientlog/pkg/service/service.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/changelog/unreleased/sharing-sse.md b/changelog/unreleased/sharing-sse.md index dfc859c88c..bcd0ffd2bb 100644 --- a/changelog/unreleased/sharing-sse.md +++ b/changelog/unreleased/sharing-sse.md @@ -3,3 +3,4 @@ Enhancement: Sharing SSEs Added server side events for item moved, share created/updated/removed, space membership created/removed. https://github.com/owncloud/ocis/pull/8854 +https://github.com/owncloud/ocis/pull/8875 diff --git a/services/clientlog/pkg/service/service.go b/services/clientlog/pkg/service/service.go index ab7bf7cc4a..841b13e3f4 100644 --- a/services/clientlog/pkg/service/service.go +++ b/services/clientlog/pkg/service/service.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "path/filepath" "reflect" gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" @@ -146,7 +147,7 @@ func (cl *ClientlogService) processEvent(event events.Event) { p("folder-created", e.Ref) case events.ItemMoved: // we send a dedicated event in case the item was only renamed - if utils.ResourceIDEqual(e.OldReference.GetResourceId(), e.Ref.GetResourceId()) || e.Ref.GetPath() == e.OldReference.GetPath() { + if isRename(e.OldReference, e.Ref) { p("item-renamed", e.Ref) } else { p("item-moved", e.Ref) @@ -229,3 +230,12 @@ func addSharees(ctx context.Context, users []string, gwc gateway.GatewayAPIClien us, err := utils.GetGroupMembers(ctx, gid.GetOpaqueId(), gwc) return append(users, us...), err } + +// returns true if this is just a rename +func isRename(o, n *provider.Reference) bool { + // if resourceids are different we assume it is a move + if !utils.ResourceIDEqual(o.GetResourceId(), n.GetResourceId()) { + return false + } + return filepath.Base(o.GetPath()) != filepath.Base(n.GetPath()) +}