From 8a3f16fcfba08c1b31712042192a44d43c7a114e Mon Sep 17 00:00:00 2001 From: kolaente Date: Sun, 3 Dec 2023 14:33:43 +0100 Subject: [PATCH] fix(labels): make sure labels of shared sub projects are usable Resolves https://community.vikunja.io/t/cannot-filter-on-projets-labels/1736 --- pkg/models/label_task.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/models/label_task.go b/pkg/models/label_task.go index 53034c06248..ede89094002 100644 --- a/pkg/models/label_task.go +++ b/pkg/models/label_task.go @@ -176,11 +176,23 @@ func GetLabelsByTaskIDs(s *xorm.Session, opts *LabelByTaskIDsOptions) (ls []*Lab cond = builder.And(builder.In("label_tasks.task_id", opts.TaskIDs), cond) } if opts.GetForUser != 0 { + + projects, _, _, err := getRawProjectsForUser(s, &projectOptions{ + user: &user.User{ID: opts.GetForUser}, + }) + if err != nil { + return nil, 0, 0, err + } + projectIDs := make([]int64, 0, len(projects)) + for _, project := range projects { + projectIDs = append(projectIDs, project.ID) + } + cond = builder.And(builder.In("label_tasks.task_id", builder. Select("id"). From("tasks"). - Where(builder.In("project_id", getUserProjectsStatement(nil, opts.GetForUser, "", false).Select("l.id"))), + Where(builder.In("project_id", projectIDs)), ), cond) } if opts.GetUnusedLabels {