We fixed the missing folder variable when folder renamed

This commit is contained in:
Roman Perekhod
2024-09-25 12:43:59 +02:00
parent 40a174f2b0
commit 3935d39e67
3 changed files with 50 additions and 20 deletions
+5 -5
View File
@@ -134,19 +134,19 @@ func (s *ActivitylogService) HandleGetItemActivities(w http.ResponseWriter, r *h
message = MessageResourceUpdated
}
ts = utils.TSToTime(ev.Timestamp)
vars, err = s.GetVars(ctx, WithResource(ev.FileRef, true), WithUser(nil, ev.ExecutingUser, ev.ImpersonatingUser), WithSpace(toSpace(ev.FileRef)))
vars, err = s.GetVars(ctx, WithResource(ev.FileRef, true), WithUser(nil, ev.ExecutingUser, ev.ImpersonatingUser))
case events.FileTouched:
message = MessageResourceCreated
ts = utils.TSToTime(ev.Timestamp)
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser), WithSpace(toSpace(ev.Ref)))
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
case events.ContainerCreated:
message = MessageResourceCreated
ts = utils.TSToTime(ev.Timestamp)
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser), WithSpace(toSpace(ev.Ref)))
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
case events.ItemTrashed:
message = MessageResourceTrashed
ts = utils.TSToTime(ev.Timestamp)
vars, err = s.GetVars(ctx, WithTrashedResource(ev.Ref, ev.ID), WithUser(ev.Executant, nil, ev.ImpersonatingUser), WithSpace(toSpace(ev.Ref)))
vars, err = s.GetVars(ctx, WithTrashedResource(ev.Ref, ev.ID), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
case events.ItemMoved:
switch isRename(ev.OldReference, ev.Ref) {
case true:
@@ -154,7 +154,7 @@ func (s *ActivitylogService) HandleGetItemActivities(w http.ResponseWriter, r *h
vars, err = s.GetVars(ctx, WithResource(ev.Ref, false), WithOldResource(ev.OldReference), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
case false:
message = MessageResourceMoved
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser), WithSpace(toSpace(ev.Ref)))
vars, err = s.GetVars(ctx, WithResource(ev.Ref, true), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
}
ts = utils.TSToTime(ev.Timestamp)
case events.ShareCreated:
+39 -15
View File
@@ -80,6 +80,18 @@ func WithResource(ref *provider.Reference, addSpace bool) ActivityOption {
vars["resource"] = Resource{
Name: filepath.Base(ref.GetPath()),
}
n := filepath.Base(filepath.Dir(ref.GetPath()))
if n == "." || n == "/" {
s, err := utils.GetSpace(ctx, toSpace(ref).GetOpaqueId(), gwc)
if err == nil {
n = s.GetName()
} else {
n = "root"
}
}
vars["folder"] = Resource{
Name: n,
}
return err
}
@@ -88,16 +100,6 @@ func WithResource(ref *provider.Reference, addSpace bool) ActivityOption {
Name: info.GetName(),
}
parent, err := utils.GetResourceByID(ctx, info.GetParentId(), gwc)
if err != nil {
return err
}
vars["folder"] = Resource{
ID: info.GetParentId().GetOpaqueId(),
Name: parent.GetName(),
}
if addSpace {
vars["space"] = Resource{
ID: info.GetSpace().GetId().GetOpaqueId(),
@@ -105,6 +107,15 @@ func WithResource(ref *provider.Reference, addSpace bool) ActivityOption {
}
}
parent, err := utils.GetResourceByID(ctx, info.GetParentId(), gwc)
if err != nil {
return err
}
vars["folder"] = Resource{
ID: info.GetParentId().GetOpaqueId(),
Name: parent.GetName(),
}
return nil
}
}
@@ -126,6 +137,18 @@ func WithTrashedResource(ref *provider.Reference, rid *provider.ResourceId) Acti
vars["resource"] = Resource{
Name: filepath.Base(ref.GetPath()),
}
n := filepath.Base(filepath.Dir(ref.GetPath()))
if n == "." || n == "/" {
s, err := utils.GetSpace(ctx, toSpace(ref).GetOpaqueId(), gwc)
if err == nil {
n = s.GetName()
} else {
n = "root"
}
}
vars["folder"] = Resource{
Name: n,
}
resp, err := gwc.ListRecycle(ctx, &provider.ListRecycleRequest{
Ref: ref,
@@ -145,6 +168,12 @@ func WithTrashedResource(ref *provider.Reference, rid *provider.ResourceId) Acti
ID: storagespace.FormatResourceID(rid),
Name: filepath.Base(item.GetRef().GetPath()),
}
in := filepath.Base(filepath.Dir(item.GetRef().GetPath()))
if in != "." && in != "/" {
vars["folder"] = Resource{
Name: in,
}
}
return nil
}
@@ -231,11 +260,6 @@ func WithSharee(uid *user.UserId, gid *group.GroupId) ActivityOption {
// WithSpace sets the space variable for an activity
func WithSpace(spaceid *provider.StorageSpaceId) ActivityOption {
return func(ctx context.Context, gwc gateway.GatewayAPIClient, vars map[string]interface{}) error {
if _, ok := vars["space"]; ok {
// do not override space if already set
return nil
}
s, err := utils.GetSpace(ctx, spaceid.GetOpaqueId(), gwc)
if err != nil {
vars["space"] = Resource{