diff options
author | DJ Mountney <david@twkie.net> | 2016-06-01 16:44:35 -0700 |
---|---|---|
committer | DJ Mountney <david@twkie.net> | 2016-06-02 12:20:27 -0700 |
commit | b173ea2bd4bbc65529b827f9afa5999f6f04579e (patch) | |
tree | bdebc63c33170f59d5f3e669cbf5d01584b02dd1 /app/finders | |
parent | 4280575fc0888632196cf4483dcd777618c13390 (diff) | |
download | gitlab-ce-b173ea2bd4bbc65529b827f9afa5999f6f04579e.tar.gz |
Use the project finder in the todos finder to limit todos to just ones within projects you have access to.
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/todos_finder.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/app/finders/todos_finder.rb b/app/finders/todos_finder.rb index 5d7d55180e1..6fbe68a720d 100644 --- a/app/finders/todos_finder.rb +++ b/app/finders/todos_finder.rb @@ -23,7 +23,7 @@ class TodosFinder end def execute - items = current_user.todos.not_pending_delete + items = current_user.todos items = by_action_id(items) items = by_author(items) items = by_project(items) @@ -78,6 +78,16 @@ class TodosFinder @project end + def projects + return @projects if defined?(@projects) + + if project? + @projects = project + else + @projects = ProjectsFinder.new.execute(current_user).reorder(nil) + end + end + def type? type.present? && ['Issue', 'MergeRequest'].include?(type) end @@ -105,6 +115,8 @@ class TodosFinder def by_project(items) if project? items = items.where(project: project) + elsif projects + items = items.merge(projects).joins(:project) end items |