mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-28 14:59:49 -05:00
Merge pull request #10152 from 2403905/issue-10148
We fixed the missing folder variable when folder renamed
This commit is contained in:
@@ -130,19 +130,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, false), 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, false), 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, false), 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:
|
||||
@@ -150,7 +150,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, false), WithUser(ev.Executant, nil, ev.ImpersonatingUser))
|
||||
}
|
||||
ts = utils.TSToTime(ev.Timestamp)
|
||||
case events.ShareCreated:
|
||||
|
||||
@@ -80,6 +80,10 @@ func WithResource(ref *provider.Reference, addSpace bool) ActivityOption {
|
||||
vars["resource"] = Resource{
|
||||
Name: filepath.Base(ref.GetPath()),
|
||||
}
|
||||
n := getFolderName(ctx, gwc, ref)
|
||||
vars["folder"] = Resource{
|
||||
Name: n,
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -88,16 +92,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 +99,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 +129,10 @@ func WithTrashedResource(ref *provider.Reference, rid *provider.ResourceId) Acti
|
||||
vars["resource"] = Resource{
|
||||
Name: filepath.Base(ref.GetPath()),
|
||||
}
|
||||
n := getFolderName(ctx, gwc, ref)
|
||||
vars["folder"] = Resource{
|
||||
Name: n,
|
||||
}
|
||||
|
||||
resp, err := gwc.ListRecycle(ctx, &provider.ListRecycleRequest{
|
||||
Ref: ref,
|
||||
@@ -145,6 +152,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 +244,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{
|
||||
@@ -310,6 +318,19 @@ func (s *ActivitylogService) GetVars(ctx context.Context, opts ...ActivityOption
|
||||
return vars, nil
|
||||
}
|
||||
|
||||
func getFolderName(ctx context.Context, gwc gateway.GatewayAPIClient, ref *provider.Reference) string {
|
||||
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"
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func mapField(val string) string {
|
||||
switch val {
|
||||
case "TYPE_PERMISSIONS", "permission":
|
||||
|
||||
Reference in New Issue
Block a user