From 2db2b09e9030101b11731d1db38b06002a44fb72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Mon, 18 Aug 2025 18:15:29 -0400 Subject: [PATCH] fix moving items to the root-level (`GroupID` <= 0) --- services/group/group.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/services/group/group.go b/services/group/group.go index 37e93df3f8..0f2e9d7ce9 100644 --- a/services/group/group.go +++ b/services/group/group.go @@ -85,21 +85,23 @@ func MoveGroupItem(ctx context.Context, opts MoveGroupOptions, doer *user_model. } defer committer.Close() var parentGroup *group_model.Group - parentGroup, err = group_model.GetGroupByID(ctx, opts.NewParent) - if err != nil { - return err - } - canAccessNewParent, err := parentGroup.CanAccess(ctx, doer) - if err != nil { - return err - } - if !canAccessNewParent { - return errors.New("cannot access new parent group") - } + if opts.NewParent > 0 { + parentGroup, err = group_model.GetGroupByID(ctx, opts.NewParent) + if err != nil { + return err + } + canAccessNewParent, err := parentGroup.CanAccess(ctx, doer) + if err != nil { + return err + } + if !canAccessNewParent { + return errors.New("cannot access new parent group") + } - err = parentGroup.LoadSubgroups(ctx, false) - if err != nil { - return err + err = parentGroup.LoadSubgroups(ctx, false) + if err != nil { + return err + } } if opts.IsGroup { var group *group_model.Group @@ -107,7 +109,7 @@ func MoveGroupItem(ctx context.Context, opts MoveGroupOptions, doer *user_model. if err != nil { return err } - if opts.NewPos < 0 { + if opts.NewPos < 0 && parentGroup != nil { opts.NewPos = len(parentGroup.Subgroups) } if group.ParentGroupID != opts.NewParent || group.SortOrder != opts.NewPos {