diff --git a/pkg/models/task_comments.go b/pkg/models/task_comments.go index 0bddb5af2..66c01f914 100644 --- a/pkg/models/task_comments.go +++ b/pkg/models/task_comments.go @@ -252,6 +252,10 @@ func (tc *TaskComment) ReadAll(s *xorm.Session, auth web.Auth, search string, pa return nil, 0, 0, ErrGenericForbidden{} } + return tc.getAllCommentsForTasksWithoutPermissionCheck(s, search, page, perPage) +} + +func (tc *TaskComment) getAllCommentsForTasksWithoutPermissionCheck(s *xorm.Session, search string, page int, perPage int) (result []*TaskComment, resultCount int, numberOfTotalItems int64, err error) { // Because we can't extend the type in general, we need to do this here. // Not a good solution, but saves performance. type TaskCommentWithAuthor struct { diff --git a/pkg/models/typesense.go b/pkg/models/typesense.go index 53afd4042..695d4d189 100644 --- a/pkg/models/typesense.go +++ b/pkg/models/typesense.go @@ -247,35 +247,11 @@ func ReindexAllTasks() (err error) { return } -func getTypesenseTaskForTask(s *xorm.Session, task *Task, projectsCache map[int64]*Project, taskPositionCache map[int64][]*TaskPositionWithView, taskBucketCache map[int64][]*TaskBucket) (ttask *typesenseTask, err error) { +func getTypesenseTaskForTask(s *xorm.Session, task *Task, taskPositionCache map[int64][]*TaskPositionWithView, taskBucketCache map[int64][]*TaskBucket) (ttask *typesenseTask, err error) { ttask = convertTaskToTypesenseTask(task, taskPositionCache[task.ID], taskBucketCache[task.ID]) - var p *Project - if projectsCache == nil { - p, err = GetProjectSimpleByID(s, task.ProjectID) - if err != nil { - if IsErrProjectDoesNotExist(err) { - return nil, nil - } - return nil, fmt.Errorf("could not fetch project %d: %s", task.ProjectID, err.Error()) - } - } else { - var has bool - p, has = projectsCache[task.ProjectID] - if !has { - p, err = GetProjectSimpleByID(s, task.ProjectID) - if err != nil { - if IsErrProjectDoesNotExist(err) { - return nil, nil - } - return nil, fmt.Errorf("could not fetch project %d: %s", task.ProjectID, err.Error()) - } - projectsCache[task.ProjectID] = p - } - } - comment := &TaskComment{TaskID: task.ID} - ttask.Comments, _, _, err = comment.ReadAll(s, &user.User{ID: p.OwnerID}, "", -1, -1) + ttask.Comments, _, _, err = comment.getAllCommentsForTasksWithoutPermissionCheck(s, "", -1, -1) if err != nil { return nil, fmt.Errorf("could not fetch comments for task %d: %s", task.ID, err.Error()) } @@ -299,7 +275,6 @@ func reindexTasksInTypesense(s *xorm.Session, tasks map[int64]*Task) (err error) return fmt.Errorf("could not fetch more task info: %s", err.Error()) } - projects := make(map[int64]*Project) typesenseTasks := []interface{}{} positionsByTask, err := getPositionsByTask(s) @@ -314,7 +289,7 @@ func reindexTasksInTypesense(s *xorm.Session, tasks map[int64]*Task) (err error) for _, task := range tasks { - ttask, err := getTypesenseTaskForTask(s, task, projects, positionsByTask, bucketsByTask) + ttask, err := getTypesenseTaskForTask(s, task, positionsByTask, bucketsByTask) if err != nil { return err }