diff --git a/pkg/models/task_collection.go b/pkg/models/task_collection.go index 52263c5dd..60e2c1fbc 100644 --- a/pkg/models/task_collection.go +++ b/pkg/models/task_collection.go @@ -24,8 +24,7 @@ import ( // TaskCollection is a struct used to hold filter details and not clutter the Task struct with information not related to actual tasks. type TaskCollection struct { - ProjectID int64 `param:"project" json:"-"` - Projects []*Project `json:"-"` + ProjectID int64 `param:"project" json:"-"` // The query parameter to sort by. This is for ex. done, priority, etc. SortBy []string `query:"sort_by" json:"sort_by"` @@ -178,8 +177,9 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa // If the project ID is not set, we get all tasks for the user. // This allows to use this function in Task.ReadAll with a possibility to deprecate the latter at some point. + var projects []*Project if tf.ProjectID == 0 { - tf.Projects, _, _, err = getRawProjectsForUser( + projectMap, _, _, err := getRawProjectsForUser( s, &projectOptions{ user: &user.User{ID: a.GetID()}, @@ -189,6 +189,9 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa if err != nil { return nil, 0, 0, err } + for _, project := range projectMap { + projects = append(projects, project) + } } else { // Check the project exists and the user has acess on it project := &Project{ID: tf.ProjectID} @@ -199,8 +202,8 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa if !canRead { return nil, 0, 0, ErrUserDoesNotHaveAccessToProject{ProjectID: tf.ProjectID} } - tf.Projects = []*Project{{ID: tf.ProjectID}} + projects = []*Project{{ID: tf.ProjectID}} } - return getTasksForProjects(s, tf.Projects, a, taskopts) + return getTasksForProjects(s, projects, a, taskopts) } diff --git a/pkg/routes/api/v1/user_list.go b/pkg/routes/api/v1/user_list.go index 7c6929a8a..a30ccd851 100644 --- a/pkg/routes/api/v1/user_list.go +++ b/pkg/routes/api/v1/user_list.go @@ -47,7 +47,7 @@ func UserProject(c echo.Context) error { s := db.NewSession() defer s.Close() - users, err := user.ProjectUsers(s, search, nil) + users, err := user.ListUsers(s, search, nil) if err != nil { _ = s.Rollback() return handler.HandleHTTPError(err, c)