diff --git a/server/internal/core/fs/copy_move.go b/server/internal/core/fs/copy_move.go index bfce696e..3c1f2205 100644 --- a/server/internal/core/fs/copy_move.go +++ b/server/internal/core/fs/copy_move.go @@ -89,6 +89,7 @@ func (r Resource) Move(target string, conflictResolution ResourceBindConflictRes return err } res.parentID = newParentID + res.visibleParent = newParentID } return nil } @@ -229,6 +230,10 @@ func (r Resource) Copy(target string, id uuid.UUID, recursive bool, conflictReso return Resource{}, false, err } + targetRoot.visibleParent = pgtype.UUID{ + Bytes: r.id, + Valid: true, + } targetRoot.f = r.f targetRoot.userPermission = destParent.userPermission return targetRoot, deleted, err diff --git a/server/internal/core/fs/create.go b/server/internal/core/fs/create.go index b9e70e95..da81a11e 100644 --- a/server/internal/core/fs/create.go +++ b/server/internal/core/fs/create.go @@ -263,6 +263,7 @@ func (f filesystem) insertResource(id, parent uuid.UUID, name string, dir bool, } else { r, err := f.collectFullResource(rows) r.parentID = pgtype.UUID{Bytes: parent, Valid: true} + r.visibleParent = r.parentID r.inheritedPermissions = permissions return r, err } diff --git a/server/internal/core/fs/resource_delete.go b/server/internal/core/fs/resource_delete.go index 8a52425f..b555fbc2 100644 --- a/server/internal/core/fs/resource_delete.go +++ b/server/internal/core/fs/resource_delete.go @@ -131,10 +131,8 @@ func (r Resource) RestoreDeleted(parentPathOrUUID string, name string, autoRenam return err } else { r.name = name - r.parentID = pgtype.UUID{ - Bytes: p.id, - Valid: true, - } + r.parentID = pgtype.UUID{Bytes: p.id, Valid: true} + r.visibleParent = r.parentID } } if del, err := f.markNotDeleted(r.id); err != nil {